home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / bdamedia.h < prev    next >
C/C++ Source or Header  |  2001-10-08  |  109KB  |  2,985 lines

  1. //------------------------------------------------------------------------------
  2. // File: BDAMedia.h
  3. //
  4. // Desc: Broadcast Driver Architecture Multimedia Definitions.
  5. //
  6. // Copyright (c) 1996-2001, Microsoft Corporation.  All rights reserved.
  7. //------------------------------------------------------------------------------
  8.  
  9.  
  10. #if !defined(_KSMEDIA_)
  11. #error KSMEDIA.H must be included before BDAMEDIA.H
  12. #endif // !defined(_KSMEDIA_)
  13.  
  14. #if !defined(_BDATYPES_)
  15. #error BDATYPES.H must be included before BDAMEDIA.H
  16. #endif // !defined(_BDATYPES_)
  17.  
  18. #if !defined(_BDAMEDIA_)
  19. #define _BDAMEDIA_
  20.  
  21. #if defined(__cplusplus)
  22. extern "C" {
  23. #endif // defined(__cplusplus)
  24.  
  25.  
  26. /////////////////////////////////////////////////////////////////////////////
  27. //
  28. //  Windows XP vs. DirectX 8.0 header merge
  29. //
  30. //  Separate the updated Windows XP version of this header from the downlevel
  31. //  version that shipped with the DirectX 8.0 SDK.  Since development 
  32. //  on BDA technology continued for Windows XP, some changes were made to
  33. //  this file in order to improve the interface and functionality.
  34. //
  35. //  To maintain compatibility with older applications which rely on the
  36. //  DirectX 8.0 versions of these files, the DirectX 8.1 version includes
  37. //  both the Windows XP content and the DirectX 8.0 content, which are 
  38. //  separated by the #if (WINVER >= 0x501) preprocessor directive.
  39. //
  40. //  Therefore, if you define WINVER to be 0x501 to specify Windows XP,
  41. //  the revised content will be compiled.  Otherwise, the original 
  42. //  DirectX 8.0 content will be used.
  43. //
  44. /////////////////////////////////////////////////////////////////////////////
  45.  
  46. #if (WINVER >= 0x501)    // Windows XP content
  47.  
  48.  
  49. //===========================================================================
  50. //
  51. //  KSProperty Set Structure Definitions for BDA
  52. //
  53. //===========================================================================
  54.  
  55. typedef struct _KSP_BDA_NODE_PIN {
  56.     KSPROPERTY      Property;
  57.     ULONG           ulNodeType;
  58.     ULONG           ulInputPinId;
  59.     ULONG           ulOutputPinId;
  60. } KSP_BDA_NODE_PIN, *PKSP_BDA_NODE_PIN;
  61.  
  62.  
  63. typedef struct _KSM_BDA_PIN
  64. {
  65.     KSMETHOD    Method;
  66.     union
  67.     {
  68.         ULONG       PinId;
  69.         ULONG       PinType;
  70.     };
  71.     ULONG       Reserved;
  72. } KSM_BDA_PIN, * PKSM_BDA_PIN;
  73.  
  74.  
  75. typedef struct _KSM_BDA_PIN_PAIR
  76. {
  77.     KSMETHOD    Method;
  78.     union
  79.     {
  80.         ULONG       InputPinId;
  81.         ULONG       InputPinType;
  82.     };
  83.     union
  84.     {
  85.         ULONG       OutputPinId;
  86.         ULONG       OutputPinType;
  87.     };
  88. } KSM_BDA_PIN_PAIR, * PKSM_BDA_PIN_PAIR;
  89.  
  90.  
  91. typedef struct {
  92.     KSP_NODE        Property;
  93.     ULONG           EsPid;
  94. } KSP_NODE_ESPID, *PKSP_NODE_ESPID;
  95.  
  96.  
  97.  
  98. //===========================================================================
  99. //
  100. //  BDA Data Range definitions.  Includes specifier definitions.
  101. //
  102. //===========================================================================
  103.  
  104. //  Antenna Signal Formats
  105. //
  106.  
  107. typedef struct tagKS_DATARANGE_BDA_ANTENNA {
  108.    KSDATARANGE                  DataRange;
  109.  
  110.    //   Antenna specifier can go here if required
  111.    //
  112. } KS_DATARANGE_BDA_ANTENNA, *PKS_DATARANGE_BDA_ANTENNA;
  113.  
  114.  
  115.  
  116. //  Transport Formats
  117. //
  118.  
  119. typedef struct tagBDA_TRANSPORT_INFO {
  120.     ULONG           ulcbPhyiscalPacket; // Size, in bytes, of a physical packet
  121.                                         // (e.g. Satellite link payload size.
  122.     ULONG           ulcbPhyiscalFrame;  // Size, in bytes, of each physical frame
  123.                                         // 0 indicates no HW requirement
  124.     ULONG           ulcbPhyiscalFrameAlignment; // Capture buffer alignment in bytes
  125.                                                 // 0 and 1 indicate no alignment requirements
  126.     REFERENCE_TIME  AvgTimePerFrame; // Normal ActiveMovie units (100 nS)
  127.  
  128. } BDA_TRANSPORT_INFO, *PBDA_TRANSPORT_INFO;
  129.  
  130. typedef struct tagKS_DATARANGE_BDA_TRANSPORT {
  131.    KSDATARANGE                  DataRange;
  132.    BDA_TRANSPORT_INFO           BdaTransportInfo;
  133.  
  134.    //   Transport specifier can go here if required
  135.    //
  136. } KS_DATARANGE_BDA_TRANSPORT, *PKS_DATARANGE_BDA_TRANSPORT;
  137.  
  138.  
  139. //===========================================================================
  140. //  BDA Event Guids
  141. //
  142. //      These are sent by the IBroadcastEvent service on the graph.
  143. //      To receive,
  144. //          0) Implement IBroadcastEvent in your receiving object - this has one Method on it: Fire() 
  145. //          1) QI the graphs service provider for SID_SBroadcastEventService
  146. //                 for the IID_IBroadcastEvent object
  147. //          2) OR create the event service (CLSID_BroadcastEventService) if not already there
  148. //                 and register it
  149. //          3) QI that object for it's IConnectionPoint interface (*pCP)
  150. //          4) Advise your object on *pCP  (e.g. pCP->Advise(static_cast<IBroadCastEvent*>(this), &dwCookie)
  151. //          5) Unadvise when done..
  152. //          6) Implement IBroadcastEvent::Fire(GUID gEventID)
  153. //             Check for relevant event below and deal with it appropriatly...
  154. //===========================================================================
  155.  
  156. // {9D7E6235-4B7D-425d-A6D1-D717C33B9C4C}
  157. #define STATIC_EVENTID_TuningChanged \
  158.     0x9d7e6235, 0x4b7d, 0x425d, 0xa6, 0xd1, 0xd7, 0x17, 0xc3, 0x3b, 0x9c, 0x4c
  159. DEFINE_GUIDSTRUCT("9D7E6235-4B7D-425d-A6D1-D717C33B9C4C", EVENTID_TuningChanged);
  160. #define EVENTID_TuningChanged DEFINE_GUIDNAMED(EVENTID_TuningChanged)
  161.  
  162. // {2A65C528-2249-4070-AC16-00390CDFB2DD}
  163. #define STATIC_EVENTID_CADenialCountChanged \
  164.     0x2a65c528, 0x2249, 0x4070, 0xac, 0x16, 0x0, 0x39, 0xc, 0xdf, 0xb2, 0xdd
  165. DEFINE_GUIDSTRUCT("2A65C528-2249-4070-AC16-00390CDFB2DD", EVENTID_CADenialCountChanged);
  166. #define EVENTID_CADenialCountChanged DEFINE_GUIDNAMED(EVENTID_CADenialCountChanged)
  167.  
  168. // {6D9CFAF2-702D-4b01-8DFF-6892AD20D191}
  169. #define STATIC_EVENTID_SignalStatusChanged \
  170.     0x6d9cfaf2, 0x702d, 0x4b01, 0x8d, 0xff, 0x68, 0x92, 0xad, 0x20, 0xd1, 0x91
  171. DEFINE_GUIDSTRUCT("6D9CFAF2-702D-4b01-8DFF-6892AD20D191", EVENTID_SignalStatusChanged);
  172. #define EVENTID_SignalStatusChanged DEFINE_GUIDNAMED(EVENTID_SignalStatusChanged)
  173.  
  174.  
  175. //===========================================================================
  176. //
  177. //  BDA Stream Format GUIDs
  178. //
  179. //===========================================================================
  180.  
  181. #define STATIC_KSDATAFORMAT_TYPE_BDA_ANTENNA\
  182.     0x71985f41, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  183. DEFINE_GUIDSTRUCT("71985F41-1CA1-11d3-9CC8-00C04F7971E0", KSDATAFORMAT_TYPE_BDA_ANTENNA);
  184. #define KSDATAFORMAT_TYPE_BDA_ANTENNA DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_ANTENNA)
  185.  
  186.  
  187. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT\
  188.     0xf4aeb342, 0x0329, 0x4fdd, 0xa8, 0xfd, 0x4a, 0xff, 0x49, 0x26, 0xc9, 0x78
  189. DEFINE_GUIDSTRUCT("F4AEB342-0329-4fdd-A8FD-4AFF4926C978", KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT);
  190. #define KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT)
  191.  
  192.  
  193. #define STATIC_KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT\
  194.     0x8deda6fd, 0xac5f, 0x4334, 0x8e, 0xcf, 0xa4, 0xba, 0x8f, 0xa7, 0xd0, 0xf0
  195. DEFINE_GUIDSTRUCT("8DEDA6FD-AC5F-4334-8ECF-A4BA8FA7D0F0", KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT);
  196. #define KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT)
  197.  
  198.  
  199. #define STATIC_KSDATAFORMAT_TYPE_BDA_IF_SIGNAL\
  200.     0x61be0b47, 0xa5eb, 0x499b, 0x9a, 0x85, 0x5b, 0x16, 0xc0, 0x7f, 0x12, 0x58
  201. DEFINE_GUIDSTRUCT("61BE0B47-A5EB-499b-9A85-5B16C07F1258", KSDATAFORMAT_TYPE_BDA_IF_SIGNAL);
  202. #define KSDATAFORMAT_TYPE_BDA_IF_SIGNAL DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_IF_SIGNAL)
  203.  
  204.  
  205. #define STATIC_KSDATAFORMAT_TYPE_MPEG2_SECTIONS\
  206.     0x455f176c, 0x4b06, 0x47ce, 0x9a, 0xef, 0x8c, 0xae, 0xf7, 0x3d, 0xf7, 0xb5
  207. DEFINE_GUIDSTRUCT("455F176C-4B06-47CE-9AEF-8CAEF73DF7B5", KSDATAFORMAT_TYPE_MPEG2_SECTIONS);
  208. #define KSDATAFORMAT_TYPE_MPEG2_SECTIONS DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_SECTIONS)
  209.  
  210.  
  211. #define STATIC_KSDATAFORMAT_SUBTYPE_ATSC_SI\
  212.     0xb3c7397c, 0xd303, 0x414d, 0xb3, 0x3c, 0x4e, 0xd2, 0xc9, 0xd2, 0x97, 0x33
  213. DEFINE_GUIDSTRUCT("B3C7397C-D303-414D-B33C-4ED2C9D29733", KSDATAFORMAT_SUBTYPE_ATSC_SI);
  214. #define KSDATAFORMAT_SUBTYPE_ATSC_SI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ATSC_SI)
  215.  
  216.  
  217. #define STATIC_KSDATAFORMAT_SUBTYPE_DVB_SI\
  218.     0xe9dd31a3, 0x221d, 0x4adb, 0x85, 0x32, 0x9a, 0xf3, 0x9, 0xc1, 0xa4, 0x8
  219. DEFINE_GUIDSTRUCT("e9dd31a3-221d-4adb-8532-9af309c1a408", KSDATAFORMAT_SUBTYPE_DVB_SI);
  220. #define KSDATAFORMAT_SUBTYPE_DVB_SI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DVB_SI)
  221.  
  222.  
  223. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP\
  224.     0x762e3f66, 0x336f, 0x48d1, 0xbf, 0x83, 0x2b, 0x0, 0x35, 0x2c, 0x11, 0xf0
  225. DEFINE_GUIDSTRUCT("762E3F66-336F-48d1-BF83-2B00352C11F0", KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP);
  226. #define KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP)
  227.  
  228. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP\
  229.     0x951727db, 0xd2ce, 0x4528, 0x96, 0xf6, 0x33, 0x1, 0xfa, 0xbb, 0x2d, 0xe0
  230. DEFINE_GUIDSTRUCT("951727DB-D2CE-4528-96F6-3301FABB2DE0", KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP);
  231. #define KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP)
  232.  
  233. //===========================================================================
  234. //
  235. //  KSPinName Definitions for BDA
  236. //
  237. //===========================================================================
  238.  
  239. //  Pin name for a BDA transport pin
  240. //
  241. // {78216A81-CFA8-493e-9711-36A61C08BD9D}
  242. //
  243. #define STATIC_PINNAME_BDA_TRANSPORT \
  244.     0x78216a81, 0xcfa8, 0x493e, 0x97, 0x11, 0x36, 0xa6, 0x1c, 0x8, 0xbd, 0x9d
  245. DEFINE_GUIDSTRUCT("78216A81-CFA8-493e-9711-36A61C08BD9D", PINNAME_BDA_TRANSPORT);
  246. #define PINNAME_BDA_TRANSPORT DEFINE_GUIDNAMED(PINNAME_BDA_TRANSPORT)
  247.  
  248.  
  249. //  Pin name for a BDA analog video pin
  250. //
  251. // {5C0C8281-5667-486c-8482-63E31F01A6E9}
  252. //
  253. #define STATIC_PINNAME_BDA_ANALOG_VIDEO \
  254.     0x5c0c8281, 0x5667, 0x486c, 0x84, 0x82, 0x63, 0xe3, 0x1f, 0x1, 0xa6, 0xe9
  255. DEFINE_GUIDSTRUCT("5C0C8281-5667-486c-8482-63E31F01A6E9", PINNAME_BDA_ANALOG_VIDEO);
  256. #define PINNAME_BDA_ANALOG_VIDEO DEFINE_GUIDNAMED(PINNAME_BDA_ANALOG_VIDEO)
  257.  
  258.  
  259. //  Pin name for a BDA analog audio pin
  260. //
  261. // {D28A580A-9B1F-4b0c-9C33-9BF0A8EA636B}
  262. //
  263. #define STATIC_PINNAME_BDA_ANALOG_AUDIO \
  264.     0xd28a580a, 0x9b1f, 0x4b0c, 0x9c, 0x33, 0x9b, 0xf0, 0xa8, 0xea, 0x63, 0x6b
  265. DEFINE_GUIDSTRUCT("D28A580A-9B1F-4b0c-9C33-9BF0A8EA636B", PINNAME_BDA_ANALOG_AUDIO);
  266. #define PINNAME_BDA_ANALOG_AUDIO DEFINE_GUIDNAMED(PINNAME_BDA_ANALOG_AUDIO)
  267.  
  268.  
  269. //  Pin name for a BDA FM Radio pin
  270. //
  271. // {D2855FED-B2D3-4eeb-9BD0-193436A2F890}
  272. //
  273. #define STATIC_PINNAME_BDA_FM_RADIO \
  274.     0xd2855fed, 0xb2d3, 0x4eeb, 0x9b, 0xd0, 0x19, 0x34, 0x36, 0xa2, 0xf8, 0x90
  275. DEFINE_GUIDSTRUCT("D2855FED-B2D3-4eeb-9BD0-193436A2F890", PINNAME_BDA_FM_RADIO);
  276. #define PINNAME_BDA_FM_RADIO DEFINE_GUIDNAMED(PINNAME_BDA_FM_RADIO)
  277.  
  278.  
  279. //  Pin name for a BDA Intermediate Frequency pin
  280. //
  281. // {1A9D4A42-F3CD-48a1-9AEA-71DE133CBE14}
  282. //
  283. #define STATIC_PINNAME_BDA_IF_PIN \
  284.     0x1a9d4a42, 0xf3cd, 0x48a1, 0x9a, 0xea, 0x71, 0xde, 0x13, 0x3c, 0xbe, 0x14
  285. DEFINE_GUIDSTRUCT("1A9D4A42-F3CD-48a1-9AEA-71DE133CBE14", PINNAME_BDA_IF_PIN);
  286. #define PINNAME_BDA_IF_PIN DEFINE_GUIDNAMED(PINNAME_BDA_IF_PIN)
  287.  
  288.  
  289. //  Pin name for a BDA Open Cable PSIP pin
  290. //
  291. // {297BB104-E5C9-4ACE-B123-95C3CBB24D4F}
  292. //
  293. #define STATIC_PINNAME_BDA_OPENCABLE_PSIP_PIN \
  294.     0x297bb104, 0xe5c9, 0x4ace, 0xb1, 0x23, 0x95, 0xc3, 0xcb, 0xb2, 0x4d, 0x4f
  295. DEFINE_GUIDSTRUCT("297BB104-E5C9-4ACE-B123-95C3CBB24D4F", PINNAME_BDA_OPENCABLE_PSIP_PIN);
  296. #define PINNAME_BDA_OPENCABLE_PSIP_PIN DEFINE_GUIDNAMED(PINNAME_BDA_OPENCABLE_PSIP_PIN)
  297.  
  298.  
  299. //===========================================================================
  300. //
  301. //  KSProperty Set Definitions for BDA
  302. //
  303. //===========================================================================
  304.  
  305.  
  306. //------------------------------------------------------------
  307. //
  308. //  BDA Network Ethernet Filter Property Set
  309. //
  310. // {71985F43-1CA1-11d3-9CC8-00C04F7971E0}
  311. //
  312. #define STATIC_KSPROPSETID_BdaEthernetFilter \
  313.     0x71985f43, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  314. DEFINE_GUIDSTRUCT("71985F43-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaEthernetFilter);
  315. #define KSPROPSETID_BdaEthernetFilter DEFINE_GUIDNAMED(KSPROPSETID_BdaEthernetFilter)
  316.  
  317. typedef enum {
  318.     KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST_SIZE = 0,
  319.     KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST,
  320.     KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_MODE
  321. } KSPROPERTY_BDA_ETHERNET_FILTER;
  322.  
  323. #define DEFINE_KSPROPERTY_ITEM_BDA_ETHERNET_FILTER_MULTICAST_LIST_SIZE(GetHandler, SetHandler)\
  324.     DEFINE_KSPROPERTY_ITEM(\
  325.         KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST_SIZE,\
  326.         (GetHandler),\
  327.         sizeof(KSPROPERTY),\
  328.         sizeof(ULONG),\
  329.         FALSE,\
  330.         NULL, 0, NULL, NULL, 0)
  331.  
  332. #define DEFINE_KSPROPERTY_ITEM_BDA_ETHERNET_FILTER_MULTICAST_LIST(GetHandler, SetHandler)\
  333.     DEFINE_KSPROPERTY_ITEM(\
  334.         KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST,\
  335.         (GetHandler),\
  336.         sizeof(KSPROPERTY),\
  337.         sizeof(BDA_ETHERNET_ADDRESS_LIST),\
  338.         (SetHandler),\
  339.         NULL, 0, NULL, NULL, 0)
  340.  
  341. #define DEFINE_KSPROPERTY_ITEM_BDA_ETHERNET_FILTER_MULTICAST_MODE(GetHandler, SetHandler)\
  342.     DEFINE_KSPROPERTY_ITEM(\
  343.         KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_MODE,\
  344.         (GetHandler),\
  345.         sizeof(KSPROPERTY),\
  346.         sizeof(BDA_MULTICAST_MODE),\
  347.         (SetHandler),\
  348.         NULL, 0, NULL, NULL, 0)
  349.  
  350.  
  351.  
  352. //------------------------------------------------------------
  353. //
  354. //  BDA Network IPv4 Filter Property Set
  355. //
  356. // {71985F44-1CA1-11d3-9CC8-00C04F7971E0}
  357. //
  358. #define STATIC_KSPROPSETID_BdaIPv4Filter \
  359.     0x71985f44, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  360. DEFINE_GUIDSTRUCT("71985F44-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaIPv4Filter);
  361. #define KSPROPSETID_BdaIPv4Filter DEFINE_GUIDNAMED(KSPROPSETID_BdaIPv4Filter)
  362.  
  363. typedef enum {
  364.     KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST_SIZE = 0,
  365.     KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST,
  366.     KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_MODE
  367. } KSPROPERTY_BDA_IPv4_FILTER;
  368.  
  369. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv4_FILTER_MULTICAST_LIST_SIZE(GetHandler, SetHandler)\
  370.     DEFINE_KSPROPERTY_ITEM(\
  371.         KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST_SIZE,\
  372.         (GetHandler),\
  373.         sizeof(KSPROPERTY),\
  374.         sizeof(ULONG),\
  375.         FALSE,\
  376.         NULL, 0, NULL, NULL, 0)
  377.  
  378. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv4_FILTER_MULTICAST_LIST(GetHandler, SetHandler)\
  379.     DEFINE_KSPROPERTY_ITEM(\
  380.         KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST,\
  381.         (GetHandler),\
  382.         sizeof(KSPROPERTY),\
  383.         sizeof(BDA_IPv4_ADDRESS_LIST),\
  384.         (SetHandler),\
  385.         NULL, 0, NULL, NULL, 0)
  386.  
  387. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv4_FILTER_MULTICAST_MODE(GetHandler, SetHandler)\
  388.     DEFINE_KSPROPERTY_ITEM(\
  389.         KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_MODE,\
  390.         (GetHandler),\
  391.         sizeof(KSPROPERTY),\
  392.         sizeof(BDA_MULTICAST_MODE),\
  393.         (SetHandler),\
  394.         NULL, 0, NULL, NULL, 0)
  395.  
  396.  
  397.  
  398. //------------------------------------------------------------
  399. //
  400. //  BDA Network IPv6 Filter Property Set
  401. //
  402. // {E1785A74-2A23-4fb3-9245-A8F88017EF33}
  403. //
  404. #define STATIC_KSPROPSETID_BdaIPv6Filter \
  405.     0xe1785a74, 0x2a23, 0x4fb3, 0x92, 0x45, 0xa8, 0xf8, 0x80, 0x17, 0xef, 0x33
  406. DEFINE_GUIDSTRUCT("E1785A74-2A23-4fb3-9245-A8F88017EF33", KSPROPSETID_BdaIPv6Filter);
  407. #define KSPROPSETID_BdaIPv6Filter DEFINE_GUIDNAMED(KSPROPSETID_BdaIPv6Filter)
  408.  
  409. typedef enum {
  410.     KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST_SIZE = 0,
  411.     KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST,
  412.     KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_MODE
  413. } KSPROPERTY_BDA_IPv6_FILTER;
  414.  
  415. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv6_FILTER_MULTICAST_LIST_SIZE(GetHandler, SetHandler)\
  416.     DEFINE_KSPROPERTY_ITEM(\
  417.         KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST_SIZE,\
  418.         (GetHandler),\
  419.         sizeof(KSPROPERTY),\
  420.         sizeof(ULONG),\
  421.         FALSE,\
  422.         NULL, 0, NULL, NULL, 0)
  423.  
  424. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv6_FILTER_MULTICAST_LIST(GetHandler, SetHandler)\
  425.     DEFINE_KSPROPERTY_ITEM(\
  426.         KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST,\
  427.         (GetHandler),\
  428.         sizeof(KSPROPERTY),\
  429.         sizeof(BDA_IPv6_ADDRESS_LIST),\
  430.         (SetHandler),\
  431.         NULL, 0, NULL, NULL, 0)
  432.  
  433. #define DEFINE_KSPROPERTY_ITEM_BDA_IPv6_FILTER_MULTICAST_MODE(GetHandler, SetHandler)\
  434.     DEFINE_KSPROPERTY_ITEM(\
  435.         KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_MODE,\
  436.         (GetHandler),\
  437.         sizeof(KSPROPERTY),\
  438.         sizeof(BDA_MULTICAST_MODE),\
  439.         (SetHandler),\
  440.         NULL, 0, NULL, NULL, 0)
  441.  
  442.  
  443. //------------------------------------------------------------
  444. //
  445. //
  446. //  BDA Signal Statistics Property Set
  447. //
  448. //  Used to get signal statistics from a control node or a pin.
  449. //  Set NodeId == -1 to get properties from the pin.
  450. //
  451. //  {1347D106-CF3A-428a-A5CB-AC0D9A2A4338}
  452. //
  453. #define STATIC_KSPROPSETID_BdaSignalStats \
  454.     0x1347d106, 0xcf3a, 0x428a, 0xa5, 0xcb, 0xac, 0xd, 0x9a, 0x2a, 0x43, 0x38
  455. DEFINE_GUIDSTRUCT("1347D106-CF3A-428a-A5CB-AC0D9A2A4338", KSPROPSETID_BdaSignalStats);
  456. #define KSPROPSETID_BdaSignalStats DEFINE_GUIDNAMED(KSPROPSETID_BdaSignalStats)
  457.  
  458. typedef enum {
  459.     KSPROPERTY_BDA_SIGNAL_STRENGTH = 0,
  460.     KSPROPERTY_BDA_SIGNAL_QUALITY,
  461.     KSPROPERTY_BDA_SIGNAL_PRESENT,
  462.     KSPROPERTY_BDA_SIGNAL_LOCKED,
  463.     KSPROPERTY_BDA_SAMPLE_TIME
  464. } KSPROPERTY_BDA_SIGNAL_STATS;
  465.  
  466. //  OPTIONAL
  467. //  Carrier strength in mDb (1/1000 of a DB).
  468. //
  469. //  A strength of 0 is nominal strength as expected for the given
  470. //  type of broadcast network.
  471. //
  472. //  Sub-nominal strengths are reported as positive mDb
  473. //
  474. //  Super-nominal strengths are reported as negative mDb
  475. //
  476. #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_STRENGTH(GetHandler, SetHandler)\
  477.     DEFINE_KSPROPERTY_ITEM(\
  478.         KSPROPERTY_BDA_SIGNAL_STRENGTH,\
  479.         (GetHandler),\
  480.         sizeof(KSP_NODE),\
  481.         sizeof(LONG),\
  482.         (SetHandler),\
  483.         NULL, 0, NULL, NULL, 0)
  484.  
  485. //  OPTIONAL
  486. //  Amount of data successfully extracted from the signal as a percent.
  487. //
  488. //  Signal Quality is usually reported by the demodulation node and is
  489. //  a representation of how much of the original data could be extracted
  490. //  from the signal.
  491. //
  492. //  In the case of Analog Signals, this percentage can be
  493. //  computed by examining the timing of HSync and VSync as will as by
  494. //  looking at information contained in HBlanking and VBlanking intervals.
  495. //
  496. //  In the case of Digital Signals, this percentage can be
  497. //  computed by examining packet CRCs and FEC confidence values.
  498. //
  499. //  100 percent is ideal.
  500. //  95 percent shows very little (almost unnoticable) artifacts when rendered.
  501. //  90 percent contains few enough artifacts as to be easily viewable.
  502. //  80 percent is the minimum level to be viewable.
  503. //  60 percent is the minimum level to expect data services
  504. //  (including EPG) to work.
  505. //  20 percent indicates that the demodulator knows that a properly modulated
  506. //  signal exists but can't produce enough data to be useful.
  507. //
  508. #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_QUALITY(GetHandler, SetHandler)\
  509.     DEFINE_KSPROPERTY_ITEM(\
  510.         KSPROPERTY_BDA_SIGNAL_QUALITY,\
  511.         (GetHandler),\
  512.         sizeof(KSP_NODE),\
  513.         sizeof(LONG),\
  514.         (SetHandler),\
  515.         NULL, 0, NULL, NULL, 0)
  516.  
  517. //  REQUIRED
  518. //  True if a signal carrier is present.
  519. //
  520. //  Should be returned by the RF tuner node.
  521. //
  522. #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_PRESENT(GetHandler, SetHandler)\
  523.     DEFINE_KSPROPERTY_ITEM(\
  524.         KSPROPERTY_BDA_SIGNAL_PRESENT,\
  525.         (GetHandler),\
  526.         sizeof(KSP_NODE),\
  527.         sizeof(BOOL),\
  528.         (SetHandler),\
  529.         NULL, 0, NULL, NULL, 0)
  530.  
  531. //  REQUIRED
  532. //  True if the signal can be locked.
  533. //
  534. //  Ususally represents PLL lock when returned by the RF Tuner Node.
  535. //
  536. //  Represents Signal Quality of at least 20% when returned by the
  537. //  demodulator node.
  538. //
  539. #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_LOCKED(GetHandler, SetHandler)\
  540.     DEFINE_KSPROPERTY_ITEM(\
  541.         KSPROPERTY_BDA_SIGNAL_LOCKED,\
  542.         (GetHandler),\
  543.         sizeof(KSP_NODE),\
  544.         sizeof(BOOL),\
  545.         (SetHandler),\
  546.         NULL, 0, NULL, NULL, 0)
  547.  
  548. //  OPTIONAL
  549. //  Indicates the sample time overwhich signal level and quality are
  550. //  averaged.
  551. //
  552. //  Each time a signal statistics property is requested, the node should
  553. //  report the average value for the last n milliseconds where n is the
  554. //  value set by this property.  If no value is set or if the driver does
  555. //  not support this property, the driver should default to 
  556. //  100 millisecond sample times.
  557. //
  558. //  The driver may report values for the most recently completed sample
  559. //  period.
  560. //
  561. #define DEFINE_KSPROPERTY_ITEM_BDA_SAMPLE_TIME(GetHandler, SetHandler)\
  562.     DEFINE_KSPROPERTY_ITEM(\
  563.         KSPROPERTY_BDA_SAMPLE_TIME,\
  564.         (GetHandler),\
  565.         sizeof(KSP_NODE),\
  566.         sizeof(LONG),\
  567.         (SetHandler),\
  568.         NULL, 0, NULL, NULL, 0)
  569.  
  570.  
  571.  
  572. //------------------------------------------------------------
  573. //
  574. //
  575. //  BDA Change Sync Method Set
  576. //
  577. // {FD0A5AF3-B41D-11d2-9C95-00C04F7971E0}
  578. //
  579. #define STATIC_KSMETHODSETID_BdaChangeSync \
  580.     0xfd0a5af3, 0xb41d, 0x11d2, 0x9c, 0x95, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  581. DEFINE_GUIDSTRUCT("FD0A5AF3-B41D-11d2-9C95-00C04F7971E0", KSMETHODSETID_BdaChangeSync);
  582. #define KSMETHODSETID_BdaChangeSync DEFINE_GUIDNAMED(KSMETHODSETID_BdaChangeSync)
  583.  
  584. typedef enum {
  585.     KSMETHOD_BDA_START_CHANGES = 0,
  586.     KSMETHOD_BDA_CHECK_CHANGES,
  587.     KSMETHOD_BDA_COMMIT_CHANGES,
  588.     KSMETHOD_BDA_GET_CHANGE_STATE
  589. } KSMETHOD_BDA_CHANGE_SYNC;
  590.  
  591. #define DEFINE_KSMETHOD_ITEM_BDA_START_CHANGES(MethodHandler, SupportHandler)\
  592.     DEFINE_KSMETHOD_ITEM(\
  593.         KSMETHOD_BDA_START_CHANGES,\
  594.         KSMETHOD_TYPE_NONE,\
  595.         (MethodHandler),\
  596.         sizeof(KSMETHOD),\
  597.         0,\
  598.         SupportHandler)
  599.  
  600. #define DEFINE_KSMETHOD_ITEM_BDA_CHECK_CHANGES(MethodHandler, SupportHandler)\
  601.     DEFINE_KSMETHOD_ITEM(\
  602.         KSMETHOD_BDA_CHECK_CHANGES,\
  603.         KSMETHOD_TYPE_NONE,\
  604.         (MethodHandler),\
  605.         sizeof(KSMETHOD),\
  606.         0,\
  607.         SupportHandler)
  608.  
  609. #define DEFINE_KSMETHOD_ITEM_BDA_COMMIT_CHANGES(MethodHandler, SupportHandler)\
  610.     DEFINE_KSMETHOD_ITEM(\
  611.         KSMETHOD_BDA_COMMIT_CHANGES,\
  612.         KSMETHOD_TYPE_NONE,\
  613.         (MethodHandler),\
  614.         sizeof(KSMETHOD),\
  615.         0,\
  616.         SupportHandler)
  617.  
  618. #define DEFINE_KSMETHOD_ITEM_BDA_GET_CHANGE_STATE(MethodHandler, SupportHandler)\
  619.     DEFINE_KSMETHOD_ITEM(\
  620.         KSMETHOD_BDA_GET_CHANGE_STATE,\
  621.         KSMETHOD_TYPE_READ,\
  622.         (MethodHandler),\
  623.         sizeof(KSMETHOD),\
  624.         0,\
  625.         SupportHandler)
  626.  
  627.  
  628.  
  629. //------------------------------------------------------------
  630. //
  631. //
  632. //  BDA Device Configuration Method Set
  633. //
  634. // {71985F45-1CA1-11d3-9CC8-00C04F7971E0}
  635. //
  636. #define STATIC_KSMETHODSETID_BdaDeviceConfiguration \
  637.     0x71985f45, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  638. DEFINE_GUIDSTRUCT("71985F45-1CA1-11d3-9CC8-00C04F7971E0", KSMETHODSETID_BdaDeviceConfiguration);
  639. #define KSMETHODSETID_BdaDeviceConfiguration DEFINE_GUIDNAMED(KSMETHODSETID_BdaDeviceConfiguration)
  640.  
  641. typedef enum {
  642.     KSMETHOD_BDA_CREATE_PIN_FACTORY = 0,
  643.     KSMETHOD_BDA_DELETE_PIN_FACTORY,
  644.     KSMETHOD_BDA_CREATE_TOPOLOGY
  645. } KSMETHOD_BDA_DEVICE_CONFIGURATION;
  646.  
  647. #define DEFINE_KSMETHOD_ITEM_BDA_CREATE_PIN_FACTORY(MethodHandler, SupportHandler)\
  648.     DEFINE_KSMETHOD_ITEM(\
  649.         KSMETHOD_BDA_CREATE_PIN_FACTORY,\
  650.         KSMETHOD_TYPE_READ,\
  651.         (MethodHandler),\
  652.         sizeof(KSM_BDA_PIN),\
  653.         sizeof(ULONG),\
  654.         SupportHandler)
  655.  
  656. #define DEFINE_KSMETHOD_ITEM_BDA_DELETE_PIN_FACTORY(MethodHandler, SupportHandler)\
  657.     DEFINE_KSMETHOD_ITEM(\
  658.         KSMETHOD_BDA_DELETE_PIN_FACTORY,\
  659.         KSMETHOD_TYPE_NONE,\
  660.         (MethodHandler),\
  661.         sizeof(KSM_BDA_PIN),\
  662.         0,\
  663.         SupportHandler)
  664.  
  665. #define DEFINE_KSMETHOD_ITEM_BDA_CREATE_TOPOLOGY(MethodHandler, SupportHandler)\
  666.     DEFINE_KSMETHOD_ITEM(\
  667.         KSMETHOD_BDA_CREATE_TOPOLOGY,\
  668.         KSMETHOD_TYPE_WRITE,\
  669.         (MethodHandler),\
  670.         sizeof(KSM_BDA_PIN_PAIR),\
  671.         0,\
  672.         SupportHandler)
  673.  
  674.  
  675.  
  676. //------------------------------------------------------------
  677. //
  678. //
  679. //  BDA Topology Property Set
  680. //
  681. // {A14EE835-0A23-11d3-9CC7-00C04F7971E0}
  682. //
  683. #define STATIC_KSPROPSETID_BdaTopology \
  684.     0xa14ee835, 0x0a23, 0x11d3, 0x9c, 0xc7, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  685. DEFINE_GUIDSTRUCT("A14EE835-0A23-11d3-9CC7-00C04F7971E0", KSPROPSETID_BdaTopology);
  686. #define KSPROPSETID_BdaTopology DEFINE_GUIDNAMED(KSPROPSETID_BdaTopology)
  687.  
  688. typedef enum {
  689.     KSPROPERTY_BDA_NODE_TYPES,
  690.     KSPROPERTY_BDA_PIN_TYPES,
  691.     KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,
  692.     KSPROPERTY_BDA_NODE_METHODS,
  693.     KSPROPERTY_BDA_NODE_PROPERTIES,
  694.     KSPROPERTY_BDA_NODE_EVENTS,
  695.     KSPROPERTY_BDA_CONTROLLING_PIN_ID,
  696.     KSPROPERTY_BDA_NODE_DESCRIPTORS
  697.  }KSPROPERTY_BDA_TOPOLOGY;
  698.  
  699. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_TYPES(GetHandler, SetHandler)\
  700.     DEFINE_KSPROPERTY_ITEM(\
  701.         KSPROPERTY_BDA_NODE_TYPES,\
  702.         (GetHandler),\
  703.         sizeof(KSPROPERTY),\
  704.         0,\
  705.         FALSE,\
  706.         NULL, 0, NULL, NULL, 0)
  707.  
  708. #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPES(GetHandler, SetHandler)\
  709.     DEFINE_KSPROPERTY_ITEM(\
  710.         KSPROPERTY_BDA_PIN_TYPES,\
  711.         (GetHandler),\
  712.         sizeof(KSPROPERTY),\
  713.         0,\
  714.         FALSE,\
  715.         NULL, 0, NULL, NULL, 0)
  716.  
  717. #define DEFINE_KSPROPERTY_ITEM_BDA_TEMPLATE_CONNECTIONS(GetHandler, SetHandler)\
  718.     DEFINE_KSPROPERTY_ITEM(\
  719.         KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,\
  720.         (GetHandler),\
  721.         sizeof(KSPROPERTY),\
  722.         sizeof( BDA_TEMPLATE_CONNECTION),\
  723.         FALSE,\
  724.         NULL, 0, NULL, NULL, 0)
  725.  
  726. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_METHODS(GetHandler, SetHandler)\
  727.     DEFINE_KSPROPERTY_ITEM(\
  728.         KSPROPERTY_BDA_NODE_METHODS,\
  729.         (GetHandler),\
  730.         sizeof(KSP_NODE),\
  731.         0,\
  732.         FALSE,\
  733.         NULL, 0, NULL, NULL, 0)
  734.  
  735. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_PROPERTIES(GetHandler, SetHandler)\
  736.     DEFINE_KSPROPERTY_ITEM(\
  737.         KSPROPERTY_BDA_NODE_PROPERTIES,\
  738.         (GetHandler),\
  739.         sizeof(KSP_NODE),\
  740.         0,\
  741.         FALSE,\
  742.         NULL, 0, NULL, NULL, 0)
  743.  
  744. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_EVENTS(GetHandler, SetHandler)\
  745.     DEFINE_KSPROPERTY_ITEM(\
  746.         KSPROPERTY_BDA_NODE_EVENTS,\
  747.         (GetHandler),\
  748.         sizeof(KSP_NODE),\
  749.         0,\
  750.         FALSE,\
  751.         NULL, 0, NULL, NULL, 0)
  752.  
  753. #define DEFINE_KSPROPERTY_ITEM_BDA_CONTROLLING_PIN_ID(GetHandler, SetHandler)\
  754.     DEFINE_KSPROPERTY_ITEM(\
  755.         KSPROPERTY_BDA_CONTROLLING_PIN_ID,\
  756.         (GetHandler),\
  757.         sizeof(KSP_BDA_NODE_PIN),\
  758.         sizeof( ULONG),\
  759.         FALSE,\
  760.         NULL, 0, NULL, NULL, 0)
  761.  
  762. #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_DESCRIPTORS(GetHandler, SetHandler)\
  763.     DEFINE_KSPROPERTY_ITEM(\
  764.         KSPROPERTY_BDA_NODE_DESCRIPTORS,\
  765.         (GetHandler),\
  766.         sizeof(KSPROPERTY),\
  767.         0,\
  768.         FALSE,\
  769.         NULL, 0, NULL, NULL, 0)
  770.  
  771.  
  772.  
  773. //------------------------------------------------------------
  774. //
  775. //
  776. //  BDA Pin Control Property Set
  777. //
  778. // {0DED49D5-A8B7-4d5d-97A1-12B0C195874D}
  779. //
  780. #define STATIC_KSPROPSETID_BdaPinControl \
  781.     0xded49d5, 0xa8b7, 0x4d5d, 0x97, 0xa1, 0x12, 0xb0, 0xc1, 0x95, 0x87, 0x4d
  782. DEFINE_GUIDSTRUCT("0DED49D5-A8B7-4d5d-97A1-12B0C195874D", KSPROPSETID_BdaPinControl);
  783. #define KSPROPSETID_BdaPinControl DEFINE_GUIDNAMED(KSPROPSETID_BdaPinControl)
  784.  
  785. typedef enum {
  786.     KSPROPERTY_BDA_PIN_ID = 0,
  787.     KSPROPERTY_BDA_PIN_TYPE
  788. } KSPROPERTY_BDA_PIN_CONTROL;
  789.  
  790. #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_ID(GetHandler, SetHandler)\
  791.     DEFINE_KSPROPERTY_ITEM(\
  792.         KSPROPERTY_BDA_PIN_ID,\
  793.         (GetHandler),\
  794.         sizeof( KSPROPERTY),\
  795.         sizeof( ULONG),\
  796.         FALSE,\
  797.         NULL, 0, NULL, NULL, 0)
  798.  
  799. #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPE(GetHandler, SetHandler)\
  800.     DEFINE_KSPROPERTY_ITEM(\
  801.         KSPROPERTY_BDA_PIN_TYPE,\
  802.         (GetHandler),\
  803.         sizeof( KSPROPERTY),\
  804.         sizeof( ULONG),\
  805.         FALSE,\
  806.         NULL, 0, NULL, NULL, 0)
  807.  
  808.  
  809.  
  810. //------------------------------------------------------------
  811. //
  812. //
  813. //  BDA Pin Event Set
  814. //
  815. // {104781CD-50BD-40d5-95FB-087E0E86A591}
  816. //
  817. #define STATIC_KSEVENTSETID_BdaPinEvent \
  818.     0x104781cd, 0x50bd, 0x40d5, 0x95, 0xfb, 0x08, 0x7e, 0xe, 0x86, 0xa5, 0x91
  819. DEFINE_GUIDSTRUCT("104781CD-50BD-40d5-95FB-087E0E86A591", KSEVENTSETID_BdaPinEvent);
  820. #define KSEVENTSETID_BdaPinEvent DEFINE_GUIDNAMED(KSEVENTSETID_BdaPinEvent)
  821.  
  822. typedef enum {
  823.     KSEVENT_BDA_PIN_CONNECTED = 0,
  824.     KSEVENT_BDA_PIN_DISCONNECTED
  825. } KSPROPERTY_BDA_PIN_EVENT;
  826.  
  827. #define DEFINE_KSEVENT_ITEM_BDA_PIN_CONNECTED(AddHandler, RemoveHandler, SupportHandler)\
  828.     DEFINE_KSEVENT_ITEM(\
  829.         KSEVENT_BDA_PIN_CONNECTED,\
  830.         sizeof( KSEVENTDATA), \
  831.         0, \
  832.         (AddHandler),\
  833.         (RemoveHandler),\
  834.         (SupportHandler)\
  835.         )
  836.  
  837. #define DEFINE_KSEVENT_ITEM_BDA_PIN_DISCONNECTED(AddHandler, RemoveHandler, SupportHandler)\
  838.     DEFINE_KSEVENT_ITEM(\
  839.         KSEVENT_BDA_PIN_DISCONNECTED,\
  840.         sizeof( KSEVENTDATA), \
  841.         0, \
  842.         (AddHandler),\
  843.         (RemoveHandler),\
  844.         (SupportHandler)\
  845.         )
  846.  
  847.  
  848.  
  849. //------------------------------------------------------------
  850. //
  851. //
  852. //  BDA Void Transform Property Set
  853. //
  854. // {71985F46-1CA1-11d3-9CC8-00C04F7971E0}
  855. //
  856. #define STATIC_KSPROPSETID_BdaVoidTransform \
  857.     0x71985f46, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  858. DEFINE_GUIDSTRUCT("71985F46-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaVoidTransform);
  859. #define KSPROPSETID_BdaVoidTransform DEFINE_GUIDNAMED(KSPROPSETID_BdaVoidTransform)
  860.  
  861. typedef enum {
  862.     KSPROPERTY_BDA_VOID_TRANSFORM_START = 0,
  863.     KSPROPERTY_BDA_VOID_TRANSFORM_STOP
  864. } KSPROPERTY_BDA_VOID_TRANSFORM;
  865.  
  866. #define DEFINE_KSPROPERTY_ITEM_BDA_VOID_TRANSFORM_START(GetHandler, SetHandler)\
  867.     DEFINE_KSPROPERTY_ITEM(\
  868.         KSPROPERTY_BDA_VOID_TRANSFORM_START,\
  869.         FALSE,\
  870.         sizeof(KSPROPERTY),\
  871.         0,\
  872.         (SetHandler),\
  873.         NULL, 0, NULL, NULL, 0)
  874.  
  875. #define DEFINE_KSPROPERTY_ITEM_BDA_VOID_TRANSFORM_STOP(GetHandler, SetHandler)\
  876.     DEFINE_KSPROPERTY_ITEM(\
  877.         KSPROPERTY_BDA_VOID_TRANSFORM_STOP,\
  878.         FALSE,\
  879.         sizeof(KSPROPERTY),\
  880.         0,\
  881.         (SetHandler),\
  882.         NULL, 0, NULL, NULL, 0)
  883.  
  884.  
  885.  
  886. //------------------------------------------------------------
  887. //
  888. //
  889. //  BDA Null Transform Property Set
  890. //
  891. // {DDF15B0D-BD25-11d2-9CA0-00C04F7971E0}
  892. //
  893. #define STATIC_KSPROPSETID_BdaNullTransform \
  894.     0xddf15b0d, 0xbd25, 0x11d2, 0x9c, 0xa0, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  895. DEFINE_GUIDSTRUCT("DDF15B0D-BD25-11d2-9CA0-00C04F7971E0", KSPROPSETID_BdaNullTransform);
  896. #define KSPROPSETID_BdaNullTransform DEFINE_GUIDNAMED(KSPROPSETID_BdaNullTransform)
  897.  
  898. typedef enum {
  899.     KSPROPERTY_BDA_NULL_TRANSFORM_START = 0,
  900.     KSPROPERTY_BDA_NULL_TRANSFORM_STOP
  901. } KSPROPERTY_BDA_NULL_TRANSFORM;
  902.  
  903. #define DEFINE_KSPROPERTY_ITEM_BDA_NULL_TRANSFORM_START(GetHandler, SetHandler)\
  904.     DEFINE_KSPROPERTY_ITEM(\
  905.         KSPROPERTY_BDA_NULL_TRANSFORM_START,\
  906.         FALSE,\
  907.         sizeof(KSPROPERTY),\
  908.         0,\
  909.         (SetHandler),\
  910.         NULL, 0, NULL, NULL, 0)
  911.  
  912. #define DEFINE_KSPROPERTY_ITEM_BDA_NULL_TRANSFORM_STOP(GetHandler, SetHandler)\
  913.     DEFINE_KSPROPERTY_ITEM(\
  914.         KSPROPERTY_BDA_NULL_TRANSFORM_STOP,\
  915.         FALSE,\
  916.         sizeof(KSPROPERTY),\
  917.         0,\
  918.         (SetHandler),\
  919.         NULL, 0, NULL, NULL, 0)
  920.  
  921.  
  922.  
  923. //------------------------------------------------------------
  924. //
  925. //
  926. //  BDA Frequency Filter Property Set
  927. //
  928. // {71985F47-1CA1-11d3-9CC8-00C04F7971E0}
  929. //
  930. #define STATIC_KSPROPSETID_BdaFrequencyFilter \
  931.     0x71985f47, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  932. DEFINE_GUIDSTRUCT("71985F47-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaFrequencyFilter);
  933. #define KSPROPSETID_BdaFrequencyFilter DEFINE_GUIDNAMED(KSPROPSETID_BdaFrequencyFilter)
  934.  
  935. typedef enum {
  936.     KSPROPERTY_BDA_RF_TUNER_FREQUENCY = 0,
  937.     KSPROPERTY_BDA_RF_TUNER_POLARITY,
  938.     KSPROPERTY_BDA_RF_TUNER_RANGE,
  939.     KSPROPERTY_BDA_RF_TUNER_TRANSPONDER,
  940.     KSPROPERTY_BDA_RF_TUNER_BANDWIDTH,
  941.     KSPROPERTY_BDA_RF_TUNER_FREQUENCY_MULTIPLIER
  942. } KSPROPERTY_BDA_FREQUENCY_FILTER;
  943.  
  944. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_FREQUENCY(GetHandler, SetHandler)\
  945.     DEFINE_KSPROPERTY_ITEM(\
  946.         KSPROPERTY_BDA_RF_TUNER_FREQUENCY,\
  947.         (GetHandler),\
  948.         sizeof(KSP_NODE),\
  949.         sizeof(ULONG),\
  950.         (SetHandler),\
  951.         NULL, 0, NULL, NULL, 0)
  952.  
  953. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_POLARITY(GetHandler, SetHandler)\
  954.     DEFINE_KSPROPERTY_ITEM(\
  955.         KSPROPERTY_BDA_RF_TUNER_POLARITY,\
  956.         (GetHandler),\
  957.         sizeof(KSP_NODE),\
  958.         sizeof(ULONG),\
  959.         (SetHandler),\
  960.         NULL, 0, NULL, NULL, 0)
  961.  
  962. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_RANGE(GetHandler, SetHandler)\
  963.     DEFINE_KSPROPERTY_ITEM(\
  964.         KSPROPERTY_BDA_RF_TUNER_RANGE,\
  965.         (GetHandler),\
  966.         sizeof(KSP_NODE),\
  967.         sizeof(ULONG),\
  968.         (SetHandler),\
  969.         NULL, 0, NULL, NULL, 0)
  970.  
  971. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_TRANSPONDER(GetHandler, SetHandler)\
  972.     DEFINE_KSPROPERTY_ITEM(\
  973.         KSPROPERTY_BDA_RF_TUNER_TRANSPONDER,\
  974.         (GetHandler),\
  975.         sizeof(KSP_NODE),\
  976.         sizeof(ULONG),\
  977.         (SetHandler),\
  978.         NULL, 0, NULL, NULL, 0)
  979.  
  980. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_BANDWIDTH(GetHandler, SetHandler)\
  981.     DEFINE_KSPROPERTY_ITEM(\
  982.         KSPROPERTY_BDA_RF_TUNER_BANDWIDTH,\
  983.         (GetHandler),\
  984.         sizeof(KSP_NODE),\
  985.         sizeof(ULONG),\
  986.         (SetHandler),\
  987.         NULL, 0, NULL, NULL, 0)
  988.  
  989. #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_FREQUENCY_MULTIPLIER(GetHandler, SetHandler)\
  990.     DEFINE_KSPROPERTY_ITEM(\
  991.         KSPROPERTY_BDA_RF_TUNER_FREQUENCY_MULTIPLIER,\
  992.         (GetHandler),\
  993.         sizeof(KSP_NODE),\
  994.         sizeof(ULONG),\
  995.         (SetHandler),\
  996.         NULL, 0, NULL, NULL, 0)
  997.  
  998.  
  999.  
  1000. //------------------------------------------------------------
  1001. //
  1002. //
  1003. //  BDA LNB Info Property Set
  1004. //
  1005. // {992CF102-49F9-4719-A664-C4F23E2408F4}
  1006. //
  1007. #define STATIC_KSPROPSETID_BdaLNBInfo \
  1008.     0x992cf102, 0x49f9, 0x4719, 0xa6, 0x64, 0xc4, 0xf2, 0x3e, 0x24, 0x8, 0xf4
  1009. DEFINE_GUIDSTRUCT("992CF102-49F9-4719-A664-C4F23E2408F4", KSPROPSETID_BdaLNBInfo);
  1010. #define KSPROPSETID_BdaLNBInfo DEFINE_GUIDNAMED(KSPROPSETID_BdaLNBInfo)
  1011.  
  1012. typedef enum {
  1013.     KSPROPERTY_BDA_LNB_LOF_LOW_BAND = 0,
  1014.     KSPROPERTY_BDA_LNB_LOF_HIGH_BAND,
  1015.     KSPROPERTY_BDA_LNB_SWITCH_FREQUENCY
  1016. } KSPROPERTY_BDA_LNB_INFO;
  1017.  
  1018. #define DEFINE_KSPROPERTY_ITEM_BDA_LNB_LOF_LOW_BAND(GetHandler, SetHandler)\
  1019.     DEFINE_KSPROPERTY_ITEM(\
  1020.         KSPROPERTY_BDA_LNB_LOF_LOW_BAND,\
  1021.         (GetHandler),\
  1022.         sizeof(KSP_NODE),\
  1023.         sizeof(ULONG),\
  1024.         (SetHandler),\
  1025.         NULL, 0, NULL, NULL, 0)
  1026.  
  1027. #define DEFINE_KSPROPERTY_ITEM_BDA_LNB_LOF_HIGH_BAND(GetHandler, SetHandler)\
  1028.     DEFINE_KSPROPERTY_ITEM(\
  1029.         KSPROPERTY_BDA_LNB_LOF_HIGH_BAND,\
  1030.         (GetHandler),\
  1031.         sizeof(KSP_NODE),\
  1032.         sizeof(ULONG),\
  1033.         (SetHandler),\
  1034.         NULL, 0, NULL, NULL, 0)
  1035.  
  1036. #define DEFINE_KSPROPERTY_ITEM_BDA_LNB_SWITCH_FREQUENCY(GetHandler, SetHandler)\
  1037.     DEFINE_KSPROPERTY_ITEM(\
  1038.         KSPROPERTY_BDA_LNB_SWITCH_FREQUENCY,\
  1039.         (GetHandler),\
  1040.         sizeof(KSP_NODE),\
  1041.         sizeof(ULONG),\
  1042.         (SetHandler),\
  1043.         NULL, 0, NULL, NULL, 0)
  1044.  
  1045.  
  1046.  
  1047. //------------------------------------------------------------
  1048. //
  1049. //
  1050. //  BDA Digital Demodulator Property Set
  1051. //
  1052. // {EF30F379-985B-4d10-B640-A79D5E04E1E0}
  1053. //
  1054. #define STATIC_KSPROPSETID_BdaDigitalDemodulator \
  1055.     0xef30f379, 0x985b, 0x4d10, 0xb6, 0x40, 0xa7, 0x9d, 0x5e, 0x4, 0xe1, 0xe0
  1056. DEFINE_GUIDSTRUCT("EF30F379-985B-4d10-B640-A79D5E04E1E0", KSPROPSETID_BdaDigitalDemodulator);
  1057. #define KSPROPSETID_BdaDigitalDemodulator DEFINE_GUIDNAMED(KSPROPSETID_BdaDigitalDemodulator)
  1058.  
  1059. typedef enum {
  1060.     KSPROPERTY_BDA_MODULATION_TYPE = 0,
  1061.     KSPROPERTY_BDA_INNER_FEC_TYPE,
  1062.     KSPROPERTY_BDA_INNER_FEC_RATE,
  1063.     KSPROPERTY_BDA_OUTER_FEC_TYPE,
  1064.     KSPROPERTY_BDA_OUTER_FEC_RATE,
  1065.     KSPROPERTY_BDA_SYMBOL_RATE,
  1066.     KSPROPERTY_BDA_SPECTRAL_INVERSION,
  1067.     KSPROPERTY_BDA_GUARD_INTERVAL,
  1068.     KSPROPERTY_BDA_TRANSMISSION_MODE
  1069. } KSPROPERTY_BDA_DIGITAL_DEMODULATOR;
  1070.  
  1071. #define DEFINE_KSPROPERTY_ITEM_BDA_MODULATION_TYPE(GetHandler, SetHandler)\
  1072.     DEFINE_KSPROPERTY_ITEM(\
  1073.         KSPROPERTY_BDA_MODULATION_TYPE,\
  1074.         (GetHandler),\
  1075.         sizeof(KSP_NODE),\
  1076.         sizeof(ModulationType),\
  1077.         (SetHandler),\
  1078.         NULL, 0, NULL, NULL, 0)
  1079.  
  1080. #define DEFINE_KSPROPERTY_ITEM_BDA_INNER_FEC_TYPE(GetHandler, SetHandler)\
  1081.     DEFINE_KSPROPERTY_ITEM(\
  1082.         KSPROPERTY_BDA_INNER_FEC_TYPE,\
  1083.         (GetHandler),\
  1084.         sizeof(KSP_NODE),\
  1085.         sizeof(FECMethod),\
  1086.         (SetHandler),\
  1087.         NULL, 0, NULL, NULL, 0)
  1088.  
  1089. #define DEFINE_KSPROPERTY_ITEM_BDA_INNER_FEC_RATE(GetHandler, SetHandler)\
  1090.     DEFINE_KSPROPERTY_ITEM(\
  1091.         KSPROPERTY_BDA_INNER_FEC_RATE,\
  1092.         (GetHandler),\
  1093.         sizeof(KSP_NODE),\
  1094.         sizeof(BinaryConvolutionCodeRate),\
  1095.         (SetHandler),\
  1096.         NULL, 0, NULL, NULL, 0)
  1097.  
  1098. #define DEFINE_KSPROPERTY_ITEM_BDA_OUTER_FEC_TYPE(GetHandler, SetHandler)\
  1099.     DEFINE_KSPROPERTY_ITEM(\
  1100.         KSPROPERTY_BDA_OUTER_FEC_TYPE,\
  1101.         (GetHandler),\
  1102.         sizeof(KSP_NODE),\
  1103.         sizeof(FECMethod),\
  1104.         (SetHandler),\
  1105.         NULL, 0, NULL, NULL, 0)
  1106.  
  1107. #define DEFINE_KSPROPERTY_ITEM_BDA_OUTER_FEC_RATE(GetHandler, SetHandler)\
  1108.     DEFINE_KSPROPERTY_ITEM(\
  1109.         KSPROPERTY_BDA_OUTER_FEC_RATE,\
  1110.         (GetHandler),\
  1111.         sizeof(KSP_NODE),\
  1112.         sizeof(BinaryConvolutionCodeRate),\
  1113.         (SetHandler),\
  1114.         NULL, 0, NULL, NULL, 0)
  1115.  
  1116. #define DEFINE_KSPROPERTY_ITEM_BDA_SYMBOL_RATE(GetHandler, SetHandler)\
  1117.     DEFINE_KSPROPERTY_ITEM(\
  1118.         KSPROPERTY_BDA_SYMBOL_RATE,\
  1119.         (GetHandler),\
  1120.         sizeof(KSP_NODE),\
  1121.         sizeof(ULONG),\
  1122.         (SetHandler),\
  1123.         NULL, 0, NULL, NULL, 0)
  1124.  
  1125. #define DEFINE_KSPROPERTY_ITEM_BDA_SPECTRAL_INVERSION(GetHandler, SetHandler)\
  1126.     DEFINE_KSPROPERTY_ITEM(\
  1127.         KSPROPERTY_BDA_SPECTRAL_INVERSION,\
  1128.         (GetHandler),\
  1129.         sizeof(KSP_NODE),\
  1130.         sizeof(SpectralInversion),\
  1131.         (SetHandler),\
  1132.         NULL, 0, NULL, NULL, 0)
  1133.  
  1134. #define DEFINE_KSPROPERTY_ITEM_BDA_GUARD_INTERVAL(GetHandler, SetHandler)\
  1135.     DEFINE_KSPROPERTY_ITEM(\
  1136.         KSPROPERTY_BDA_GUARD_INTERVAL,\
  1137.         (GetHandler),\
  1138.         sizeof(KSP_NODE),\
  1139.         sizeof(GuardInterval),\
  1140.         (SetHandler),\
  1141.         NULL, 0, NULL, NULL, 0)
  1142.  
  1143. #define DEFINE_KSPROPERTY_ITEM_BDA_TRANSMISSION_MODE(GetHandler, SetHandler)\
  1144.     DEFINE_KSPROPERTY_ITEM(\
  1145.         KSPROPERTY_BDA_TRANSMISSION_MODE,\
  1146.         (GetHandler),\
  1147.         sizeof(KSP_NODE),\
  1148.         sizeof(TransmissionMode),\
  1149.         (SetHandler),\
  1150.         NULL, 0, NULL, NULL, 0)
  1151.  
  1152.  
  1153.  
  1154. //------------------------------------------------------------
  1155. //
  1156. //
  1157. //  BDA Autodemodulate Property Set
  1158. //
  1159. // {DDF15B12-BD25-11d2-9CA0-00C04F7971E0}
  1160. //
  1161. #define STATIC_KSPROPSETID_BdaAutodemodulate \
  1162.     0xddf15b12, 0xbd25, 0x11d2, 0x9c, 0xa0, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1163. DEFINE_GUIDSTRUCT("DDF15B12-BD25-11d2-9CA0-00C04F7971E0", KSPROPSETID_BdaAutodemodulate);
  1164. #define KSPROPSETID_BdaAutodemodulate DEFINE_GUIDNAMED(KSPROPSETID_BdaAutodemodulate)
  1165.  
  1166. typedef enum {
  1167.     KSPROPERTY_BDA_AUTODEMODULATE_START = 0,
  1168.     KSPROPERTY_BDA_AUTODEMODULATE_STOP
  1169. } KSPROPERTY_BDA_AUTODEMODULATE;
  1170.  
  1171. #define DEFINE_KSPROPERTY_ITEM_BDA_AUTODEMODULATE_START(GetHandler, SetHandler)\
  1172.     DEFINE_KSPROPERTY_ITEM(\
  1173.         KSPROPERTY_BDA_AUTODEMODULATE_START,\
  1174.         FALSE,\
  1175.         sizeof(KSP_NODE),\
  1176.         0,\
  1177.         (SetHandler),\
  1178.         NULL, 0, NULL, NULL, 0)
  1179.  
  1180. #define DEFINE_KSPROPERTY_ITEM_BDA_AUTODEMODULATE_STOP(GetHandler, SetHandler)\
  1181.     DEFINE_KSPROPERTY_ITEM(\
  1182.         KSPROPERTY_BDA_AUTODEMODULATE_STOP,\
  1183.         FALSE,\
  1184.         sizeof(KSP_NODE),\
  1185.         0,\
  1186.         (SetHandler),\
  1187.         NULL, 0, NULL, NULL, 0)
  1188.  
  1189. //------------------------------------------------------------
  1190. //
  1191. //
  1192. //  BDA Table Section Property Set
  1193. //
  1194. // {516B99C5-971C-4aaf-B3F3-D9FDA8A15E16}
  1195. //
  1196.  
  1197. #define STATIC_KSPROPSETID_BdaTableSection \
  1198.     0x516b99c5, 0x971c, 0x4aaf, 0xb3, 0xf3, 0xd9, 0xfd, 0xa8, 0xa1, 0x5e, 0x16
  1199. DEFINE_GUIDSTRUCT("516B99C5-971C-4aaf-B3F3-D9FDA8A15E16", KSPROPSETID_BdaTableSection);
  1200. #define KSPROPSETID_BdaTableSection DEFINE_GUIDNAMED(KSPROPSETID_BdaTableSection)
  1201.  
  1202. typedef enum {
  1203.     KSPROPERTY_BDA_TABLE_SECTION = 0,
  1204. } KSPROPERTY_IDS_BDA_TABLE;
  1205.  
  1206. #define DEFINE_KSPROPERTY_ITEM_BDA_TABLE_SECTION(GetHandler, SetHandler)\
  1207.     DEFINE_KSPROPERTY_ITEM(\
  1208.         KSPROPERTY_BDA_TABLE_SECTION,\
  1209.         (GetHandler),\
  1210.         sizeof(KSP_NODE),\
  1211.         sizeof(BDA_TABLE_SECTION),\
  1212.         (SetHandler),\
  1213.         NULL, 0, NULL, NULL, 0)
  1214.  
  1215.  
  1216.  
  1217. //------------------------------------------------------------
  1218. //
  1219. //
  1220. //  BDA PID Filter Property Set
  1221. //
  1222. // {D0A67D65-08DF-4fec-8533-E5B550410B85}
  1223. //
  1224. #define STATIC_KSPROPSETID_BdaPIDFilter \
  1225.     0xd0a67d65, 0x8df, 0x4fec, 0x85, 0x33, 0xe5, 0xb5, 0x50, 0x41, 0xb, 0x85
  1226. DEFINE_GUIDSTRUCT("D0A67D65-08DF-4fec-8533-E5B550410B85", KSPROPSETID_BdaPIDFilter);
  1227. #define KSPROPSETID_BdaPIDFilter DEFINE_GUIDNAMED(KSPROPSETID_BdaPIDFilter)
  1228.  
  1229. typedef enum {
  1230.     KSPROPERTY_BDA_PIDFILTER_MAP_PIDS = 0,
  1231.     KSPROPERTY_BDA_PIDFILTER_UNMAP_PIDS,
  1232.     KSPROPERTY_BDA_PIDFILTER_LIST_PIDS
  1233. } KSPROPERTY_BDA_PIDFILTER;
  1234.  
  1235. #define DEFINE_KSPROPERTY_ITEM_BDA_PIDFILTER_MAP_PIDS(GetHandler, SetHandler)\
  1236.     DEFINE_KSPROPERTY_ITEM(\
  1237.         KSPROPERTY_BDA_PIDFILTER_MAP_PIDS,\
  1238.         (GetHandler),\
  1239.         sizeof(KSP_NODE),\
  1240.         sizeof(BDA_PID_MAP),\
  1241.         (SetHandler),\
  1242.         NULL, 0, NULL, NULL, 0)
  1243.  
  1244. #define DEFINE_KSPROPERTY_ITEM_BDA_PIDFILTER_UNMAP_PIDS(GetHandler, SetHandler)\
  1245.     DEFINE_KSPROPERTY_ITEM(\
  1246.         KSPROPERTY_BDA_PIDFILTER_UNMAP_PIDS,\
  1247.         (GetHandler),\
  1248.         sizeof(KSP_NODE),\
  1249.         sizeof(BDA_PID_UNMAP),\
  1250.         (SetHandler),\
  1251.         NULL, 0, NULL, NULL, 0)
  1252.  
  1253. #define DEFINE_KSPROPERTY_ITEM_BDA_PIDFILTER_LIST_PIDS(GetHandler, SetHandler)\
  1254.     DEFINE_KSPROPERTY_ITEM(\
  1255.         KSPROPERTY_BDA_PIDFILTER_LIST_PIDS,\
  1256.         (GetHandler),\
  1257.         sizeof(KSP_NODE),\
  1258.         0,\
  1259.         (SetHandler),\
  1260.         NULL, 0, NULL, NULL, 0)
  1261.  
  1262.  
  1263.  
  1264. //------------------------------------------------------------
  1265. //
  1266. //
  1267. //  BDA CA Property Set
  1268. //
  1269. // {B0693766-5278-4ec6-B9E1-3CE40560EF5A}
  1270. //
  1271. #define STATIC_KSPROPSETID_BdaCA \
  1272.     0xb0693766, 0x5278, 0x4ec6, 0xb9, 0xe1, 0x3c, 0xe4, 0x5, 0x60, 0xef, 0x5a
  1273. DEFINE_GUIDSTRUCT("B0693766-5278-4ec6-B9E1-3CE40560EF5A", KSPROPSETID_BdaCA);
  1274. #define KSPROPSETID_BdaCA DEFINE_GUIDNAMED(KSPROPSETID_BdaCA)
  1275.  
  1276. typedef enum {
  1277.     KSPROPERTY_BDA_ECM_MAP_STATUS = 0,
  1278.     KSPROPERTY_BDA_CA_MODULE_STATUS,
  1279.     KSPROPERTY_BDA_CA_SMART_CARD_STATUS,
  1280.     KSPROPERTY_BDA_CA_MODULE_UI,
  1281.     KSPROPERTY_BDA_CA_SET_PROGRAM_PIDS,
  1282.     KSPROPERTY_BDA_CA_REMOVE_PROGRAM
  1283. } KSPROPERTY_BDA_CA;
  1284.  
  1285. #define DEFINE_KSPROPERTY_ITEM_BDA_ECM_MAP_STATUS(GetHandler, SetHandler)\
  1286.     DEFINE_KSPROPERTY_ITEM(\
  1287.         KSPROPERTY_BDA_ECM_MAP_STATUS,\
  1288.         (GetHandler),\
  1289.         sizeof(KSP_NODE),\
  1290.         sizeof(ULONG),\
  1291.         (SetHandler),\
  1292.         NULL, 0, NULL, NULL, 0)
  1293.  
  1294. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_MODULE_STATUS(GetHandler, SetHandler)\
  1295.     DEFINE_KSPROPERTY_ITEM(\
  1296.         KSPROPERTY_BDA_CA_MODULE_STATUS,\
  1297.         (GetHandler),\
  1298.         sizeof(KSP_NODE),\
  1299.         sizeof(ULONG),\
  1300.         (SetHandler),\
  1301.         NULL, 0, NULL, NULL, 0)
  1302.  
  1303. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_SMART_CARD_STATUS(GetHandler, SetHandler)\
  1304.     DEFINE_KSPROPERTY_ITEM(\
  1305.         KSPROPERTY_BDA_CA_SMART_CARD_STATUS,\
  1306.         (GetHandler),\
  1307.         sizeof(KSP_NODE),\
  1308.         sizeof(ULONG),\
  1309.         (SetHandler),\
  1310.         NULL, 0, NULL, NULL, 0)
  1311.  
  1312. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_MODULE_UI(GetHandler, SetHandler)\
  1313.     DEFINE_KSPROPERTY_ITEM(\
  1314.         KSPROPERTY_BDA_CA_MODULE_UI,\
  1315.         (GetHandler),\
  1316.         sizeof(KSP_NODE),\
  1317.         sizeof(BDA_CA_MODULE_UI),\
  1318.         (SetHandler),\
  1319.         NULL, 0, NULL, NULL, 0)
  1320.  
  1321. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_SET_PROGRAM_PIDS(GetHandler, SetHandler)\
  1322.     DEFINE_KSPROPERTY_ITEM(\
  1323.         KSPROPERTY_BDA_CA_SET_PROGRAM_PIDS,\
  1324.         (GetHandler),\
  1325.         sizeof(KSP_NODE),\
  1326.         sizeof(BDA_PROGRAM_PID_LIST),\
  1327.         (SetHandler),\
  1328.         NULL, 0, NULL, NULL, 0)
  1329.  
  1330. #define DEFINE_KSPROPERTY_ITEM_BDA_CA_REMOVE_PROGRAM(GetHandler, SetHandler)\
  1331.     DEFINE_KSPROPERTY_ITEM(\
  1332.         KSPROPERTY_BDA_CA_REMOVE_PROGRAM,\
  1333.         (GetHandler),\
  1334.         sizeof(KSP_NODE),\
  1335.         sizeof(ULONG),\
  1336.         (SetHandler),\
  1337.         NULL, 0, NULL, NULL, 0)
  1338.  
  1339.  
  1340.  
  1341. //------------------------------------------------------------
  1342. //
  1343. //
  1344. //  BDA CA Event Set
  1345. //
  1346. // {488C4CCC-B768-4129-8EB1-B00A071F9068}
  1347. //
  1348. #define STATIC_KSEVENTSETID_BdaCAEvent \
  1349.     0x488c4ccc, 0xb768, 0x4129, 0x8e, 0xb1, 0xb0, 0xa, 0x7, 0x1f, 0x90, 0x68
  1350. DEFINE_GUIDSTRUCT("488C4CCC-B768-4129-8EB1-B00A071F9068", KSEVENTSETID_BdaCAEvent);
  1351. #define KSEVENTSETID_BdaCAEvent DEFINE_GUIDNAMED(KSEVENTSETID_BdaCAEvent)
  1352.  
  1353. typedef enum {
  1354.     KSEVENT_BDA_PROGRAM_FLOW_STATUS_CHANGED = 0,
  1355.     KSEVENT_BDA_CA_MODULE_STATUS_CHANGED,
  1356.     KSEVENT_BDA_CA_SMART_CARD_STATUS_CHANGED,
  1357.     KSEVENT_BDA_CA_MODULE_UI_REQUESTED
  1358. } KSPROPERTY_BDA_CA_EVENT;
  1359.  
  1360. #define DEFINE_KSEVENT_BDA_PROGRAM_FLOW_STATUS_CHANGED(AddHandler, RemoveHandler, SupportHandler)\
  1361.     DEFINE_KSEVENT_ITEM(\
  1362.         KSEVENT_BDA_PROGRAM_FLOW_STATUS_CHANGED,\
  1363.         sizeof( KSEVENTDATA), \
  1364.         0, \
  1365.         (AddHandler),\
  1366.         (RemoveHandler),\
  1367.         (SupportHandler)\
  1368.         )
  1369.  
  1370. #define DEFINE_KSEVENT_BDA_CA_MODULE_STATUS_CHANGED(AddHandler, RemoveHandler, SupportHandler)\
  1371.     DEFINE_KSEVENT_ITEM(\
  1372.         KSEVENT_BDA_CA_MODULE_STATUS_CHANGED,\
  1373.         sizeof( KSEVENTDATA), \
  1374.         0, \
  1375.         (AddHandler),\
  1376.         (RemoveHandler),\
  1377.         (SupportHandler)\
  1378.         )
  1379.  
  1380. #define DEFINE_KSEVENT_BDA_CA_SMART_CARD_STATUS_CHANGED(AddHandler, RemoveHandler, SupportHandler)\
  1381.     DEFINE_KSEVENT_ITEM(\
  1382.         KSEVENT_BDA_CA_SMART_CARD_STATUS_CHANGED,\
  1383.         sizeof( KSEVENTDATA), \
  1384.         0, \
  1385.         (AddHandler),\
  1386.         (RemoveHandler),\
  1387.         (SupportHandler)\
  1388.         )
  1389.  
  1390. #define DEFINE_KSEVENT_BDA_CA_MODULE_UI_REQUESTED(AddHandler, RemoveHandler, SupportHandler)\
  1391.     DEFINE_KSEVENT_ITEM(\
  1392.         KSEVENT_BDA_CA_MODULE_UI_REQUESTED,\
  1393.         sizeof( KSEVENTDATA), \
  1394.         0, \
  1395.         (AddHandler),\
  1396.         (RemoveHandler),\
  1397.         (SupportHandler)\
  1398.         )
  1399.  
  1400.  
  1401. //===========================================================================
  1402. //
  1403. // BDA Filter Categories
  1404. //
  1405. //===========================================================================
  1406.  
  1407. #define STATIC_KSCATEGORY_BDA_RECEIVER_COMPONENT \
  1408.     0xFD0A5AF4, 0xB41D, 0x11d2, 0x9c, 0x95, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1409. DEFINE_GUIDSTRUCT("FD0A5AF4-B41D-11d2-9C95-00C04F7971E0", KSCATEGORY_BDA_RECEIVER_COMPONENT);
  1410. #define KSCATEGORY_BDA_RECEIVER_COMPONENT DEFINE_GUIDNAMED(KSCATEGORY_BDA_RECEIVER_COMPONENT)
  1411.  
  1412.  
  1413. #define STATIC_KSCATEGORY_BDA_NETWORK_TUNER \
  1414.     0x71985f48, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1415. DEFINE_GUIDSTRUCT("71985F48-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_NETWORK_TUNER);
  1416. #define KSCATEGORY_BDA_NETWORK_TUNER DEFINE_GUIDNAMED(KSCATEGORY_BDA_NETWORK_TUNER)
  1417.  
  1418.  
  1419. #define STATIC_KSCATEGORY_BDA_NETWORK_EPG \
  1420.     0x71985f49, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1421. DEFINE_GUIDSTRUCT("71985F49-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_NETWORK_EPG);
  1422. #define KSCATEGORY_BDA_NETWORK_EPG DEFINE_GUIDNAMED(KSCATEGORY_BDA_NETWORK_EPG)
  1423.  
  1424.  
  1425. #define STATIC_KSCATEGORY_BDA_IP_SINK \
  1426.     0x71985f4aL, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x00, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1427. DEFINE_GUIDSTRUCT("71985F4A-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_IP_SINK);
  1428. #define KSCATEGORY_IP_SINK DEFINE_GUIDNAMED(KSCATEGORY_BDA_IP_SINK)
  1429.  
  1430.  
  1431. #define STATIC_KSCATEGORY_BDA_NETWORK_PROVIDER \
  1432.     0x71985f4b, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1433. DEFINE_GUIDSTRUCT("71985F4B-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_NETWORK_PROVIDER);
  1434. #define KSCATEGORY_BDA_NETWORK_PROVIDER DEFINE_GUIDNAMED(KSCATEGORY_BDA_NETWORK_PROVIDER)
  1435.  
  1436. // {A2E3074F-6C3D-11d3-B653-00C04F79498E}
  1437. #define STATIC_KSCATEGORY_BDA_TRANSPORT_INFORMATION \
  1438.         0xa2e3074f, 0x6c3d, 0x11d3, 0xb6, 0x53, 0x0, 0xc0, 0x4f, 0x79, 0x49, 0x8e
  1439. DEFINE_GUIDSTRUCT("A2E3074F-6C3D-11d3-B653-00C04F79498E", KSCATEGORY_BDA_TRANSPORT_INFORMATION);
  1440. #define KSCATEGORY_BDA_TRANSPORT_INFORMATION DEFINE_GUIDNAMED(KSCATEGORY_BDA_TRANSPORT_INFORMATION)
  1441.  
  1442.  
  1443. //===========================================================================
  1444. //
  1445. // BDA Node Categories
  1446. //
  1447. //===========================================================================
  1448.  
  1449.  
  1450. #define STATIC_KSNODE_BDA_RF_TUNER \
  1451.     0x71985f4c, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1452. DEFINE_GUIDSTRUCT("71985F4C-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_RF_TUNER);
  1453. #define KSNODE_BDA_RF_TUNER DEFINE_GUIDNAMED(KSNODE_BDA_RF_TUNER)
  1454.  
  1455.  
  1456. #define STATIC_KSNODE_BDA_QAM_DEMODULATOR \
  1457.     0x71985f4d, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1458. DEFINE_GUIDSTRUCT("71985F4D-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_QAM_DEMODULATOR);
  1459. #define KSNODE_BDA_QAM_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_QAM_DEMODULATOR)
  1460.  
  1461.  
  1462. #define STATIC_KSNODE_BDA_QPSK_DEMODULATOR \
  1463.     0x6390c905, 0x27c1, 0x4d67, 0xbd, 0xb7, 0x77, 0xc5, 0xd, 0x7, 0x93, 0x0
  1464. DEFINE_GUIDSTRUCT("6390C905-27C1-4d67-BDB7-77C50D079300", KSNODE_BDA_QPSK_DEMODULATOR);
  1465. #define KSNODE_BDA_QPSK_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_QPSK_DEMODULATOR)
  1466.  
  1467.  
  1468. #define STATIC_KSNODE_BDA_8VSB_DEMODULATOR \
  1469.     0x71985f4f, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1470. DEFINE_GUIDSTRUCT("71985F4F-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_8VSB_DEMODULATOR);
  1471. #define KSNODE_BDA_8VSB_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_8VSB_DEMODULATOR)
  1472.  
  1473.  
  1474. #define STATIC_KSNODE_BDA_COFDM_DEMODULATOR \
  1475.     0x2dac6e05, 0xedbe, 0x4b9c, 0xb3, 0x87, 0x1b, 0x6f, 0xad, 0x7d, 0x64, 0x95
  1476. DEFINE_GUIDSTRUCT("2DAC6E05-EDBE-4b9c-B387-1B6FAD7D6495", KSNODE_BDA_COFDM_DEMODULATOR);
  1477. #define KSNODE_BDA_COFDM_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_COFDM_DEMODULATOR)
  1478.  
  1479.  
  1480. #define STATIC_KSNODE_BDA_OPENCABLE_POD \
  1481.     0xd83ef8fc, 0xf3b8, 0x45ab, 0x8b, 0x71, 0xec, 0xf7, 0xc3, 0x39, 0xde, 0xb4
  1482. DEFINE_GUIDSTRUCT("D83EF8FC-F3B8-45ab-8B71-ECF7C339DEB4", KSNODE_BDA_OPENCABLE_POD);
  1483. #define KSNODE_BDA_OPENCABLE_POD DEFINE_GUIDNAMED(KSNODE_BDA_OPENCABLE_POD)
  1484.  
  1485.  
  1486. #define STATIC_KSNODE_BDA_COMMON_CA_POD \
  1487.     0xd83ef8fc, 0xf3b8, 0x45ab, 0x8b, 0x71, 0xec, 0xf7, 0xc3, 0x39, 0xde, 0xb4
  1488. DEFINE_GUIDSTRUCT("D83EF8FC-F3B8-45ab-8B71-ECF7C339DEB4", KSNODE_BDA_COMMON_CA_POD);
  1489. #define KSNODE_BDA_COMMON_CA_POD DEFINE_GUIDNAMED(KSNODE_BDA_COMMON_CA_POD)
  1490.  
  1491.  
  1492. #define STATIC_KSNODE_BDA_PID_FILTER \
  1493.     0xf5412789, 0xb0a0, 0x44e1, 0xae, 0x4f, 0xee, 0x99, 0x9b, 0x1b, 0x7f, 0xbe
  1494. DEFINE_GUIDSTRUCT("F5412789-B0A0-44e1-AE4F-EE999B1B7FBE", KSNODE_BDA_PID_FILTER);
  1495. #define KSNODE_BDA_PID_FILTER DEFINE_GUIDNAMED(KSNODE_BDA_PID_FILTER)
  1496.  
  1497.  
  1498. #define STATIC_KSNODE_BDA_IP_SINK \
  1499.     0x71985f4e, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1500. DEFINE_GUIDSTRUCT("71985F4E-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_IP_SINK);
  1501. #define KSNODE_IP_SINK DEFINE_GUIDNAMED(KSNODE_BDA_IP_SINK)
  1502.  
  1503.  
  1504. //===========================================================================
  1505. //
  1506. // IPSink PINNAME GUID
  1507. //
  1508. //===========================================================================
  1509.  
  1510. #define STATIC_PINNAME_IPSINK_INPUT \
  1511.     0x3fdffa70L, 0xac9a, 0x11d2, 0x8f, 0x17, 0x00, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  1512. DEFINE_GUIDSTRUCT("3fdffa70-ac9a-11d2-8f17-00c04f7971e2", PINNAME_IPSINK_INPUT);
  1513. #define PINNAME_IPSINK_INPUT   DEFINE_GUIDNAMED(PINNAME_IPSINK_INPUT)
  1514.  
  1515.  
  1516. //===========================================================================
  1517. //
  1518. // BDA IPSink Categories/Types
  1519. //
  1520. //===========================================================================
  1521.  
  1522.  
  1523. #define STATIC_KSDATAFORMAT_TYPE_BDA_IP\
  1524.     0xe25f7b8e, 0xcccc, 0x11d2, 0x8f, 0x25, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  1525. DEFINE_GUIDSTRUCT("e25f7b8e-cccc-11d2-8f25-00c04f7971e2", KSDATAFORMAT_TYPE_BDA_IP);
  1526. #define KSDATAFORMAT_TYPE_BDA_IP  DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_IP)
  1527.  
  1528. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_IP\
  1529.     0x5a9a213c, 0xdb08, 0x11d2, 0x8f, 0x32, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  1530. DEFINE_GUIDSTRUCT("5a9a213c-db08-11d2-8f32-00c04f7971e2", KSDATAFORMAT_SUBTYPE_BDA_IP);
  1531. #define KSDATAFORMAT_SUBTYPE_BDA_IP  DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_IP)
  1532.  
  1533. #define STATIC_KSDATAFORMAT_SPECIFIER_BDA_IP\
  1534.     0x6b891420, 0xdb09, 0x11d2, 0x8f, 0x32, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  1535. DEFINE_GUIDSTRUCT("6B891420-DB09-11d2-8F32-00C04F7971E2", KSDATAFORMAT_SPECIFIER_BDA_IP);
  1536. #define KSDATAFORMAT_SPECIFIER_BDA_IP  DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_BDA_IP)
  1537.  
  1538.  
  1539.  
  1540. #define STATIC_KSDATAFORMAT_TYPE_BDA_IP_CONTROL\
  1541.     0xdadd5799, 0x7d5b, 0x4b63, 0x80, 0xfb, 0xd1, 0x44, 0x2f, 0x26, 0xb6, 0x21
  1542. DEFINE_GUIDSTRUCT("DADD5799-7D5B-4b63-80FB-D1442F26B621", KSDATAFORMAT_TYPE_BDA_IP_CONTROL);
  1543. #define KSDATAFORMAT_TYPE_BDA_IP_CONTROL  DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_IP_CONTROL)
  1544.  
  1545. #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL\
  1546.     0x499856e8, 0xe85b, 0x48ed, 0x9b, 0xea, 0x41, 0xd, 0xd, 0xd4, 0xef, 0x81
  1547. DEFINE_GUIDSTRUCT("499856E8-E85B-48ed-9BEA-410D0DD4EF81", KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL);
  1548. #define KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL  DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL)
  1549.  
  1550.  
  1551. //===========================================================================
  1552. //
  1553. // MPE PINNAME GUID
  1554. //
  1555. //===========================================================================
  1556.  
  1557. #define STATIC_PINNAME_MPE \
  1558.     0xc1b06d73L, 0x1dbb, 0x11d3, 0x8f, 0x46, 0x00, 0xC0, 0x4f, 0x79, 0x71, 0xE2
  1559. DEFINE_GUIDSTRUCT("C1B06D73-1DBB-11d3-8F46-00C04F7971E2", PINNAME_MPE);
  1560. #define PINNAME_MPE   DEFINE_GUIDNAMED(PINNAME_MPE)
  1561.  
  1562.  
  1563. /////////////////////////////////////////////////////////////
  1564. //
  1565. // BDA MPE Categories/Types
  1566. //
  1567. #define STATIC_KSDATAFORMAT_TYPE_MPE \
  1568.     0x455f176c, 0x4b06, 0x47ce, 0x9a, 0xef, 0x8c, 0xae, 0xf7, 0x3d, 0xf7, 0xb5
  1569. DEFINE_GUIDSTRUCT("455F176C-4B06-47ce-9AEF-8CAEF73DF7B5", KSDATAFORMAT_TYPE_MPE);
  1570. #define KSDATAFORMAT_TYPE_MPE  DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPE)
  1571.  
  1572.  
  1573. #if defined(__cplusplus)
  1574. }
  1575. #endif // defined(__cplusplus)
  1576.  
  1577.  
  1578.  
  1579. /////////////////////////////////////////////////////////////////////////////
  1580. //
  1581. //  Windows XP vs. DirectX 8.0 header merge
  1582. //
  1583. //  The following is the original contents of this header from
  1584. //  the DirectX 8.0 SDK.
  1585. //
  1586. /////////////////////////////////////////////////////////////////////////////
  1587.  
  1588. #else  // DirectX 8.0 content
  1589.  
  1590.  
  1591.     //===========================================================================
  1592.     //
  1593.     //  KSProperty Set Structure Definitions for BDA
  1594.     //
  1595.     //===========================================================================
  1596.  
  1597.     typedef struct _KSP_BDA_NODE_PIN {
  1598.         KSPROPERTY      Property;
  1599.         ULONG           ulNodeType;
  1600.         ULONG           ulInputPinId;
  1601.         ULONG           ulOutputPinId;
  1602.     } KSP_BDA_NODE_PIN, *PKSP_BDA_NODE_PIN;
  1603.  
  1604.  
  1605.     typedef struct {
  1606.         KSP_NODE        Property;
  1607.         ULONG           EsPid;
  1608.     } KSP_NODE_ESPID, *PKSP_NODE_ESPID;
  1609.  
  1610.  
  1611.  
  1612.     //===========================================================================
  1613.     //
  1614.     //  BDA Data Range definitions.  Includes specifier definitions.
  1615.     //
  1616.     //===========================================================================
  1617.  
  1618.     //  Antenna Signal Formats
  1619.     //
  1620.  
  1621.     typedef struct tagKS_DATARANGE_BDA_ANTENNA {
  1622.        KSDATARANGE                  DataRange;
  1623.  
  1624.        //   Antenna specifier can go here if required
  1625.        //
  1626.     } KS_DATARANGE_BDA_ANTENNA, *PKS_DATARANGE_BDA_ANTENNA;
  1627.  
  1628.  
  1629.  
  1630.     //  Transport Formats
  1631.     //
  1632.  
  1633.     typedef struct tagBDA_TRANSPORT_INFO {
  1634.         ULONG           ulcbPhyiscalPacket; // Size, in bytes, of a physical packet
  1635.                                             // (e.g. Satellite link payload size.
  1636.         ULONG           ulcbPhyiscalFrame;  // Size, in bytes, of each physical frame
  1637.                                             // 0 indicates no HW requirement
  1638.         ULONG           ulcbPhyiscalFrameAlignment; // Capture buffer alignment in bytes
  1639.                                                     // 0 and 1 indicate no alignment requirements
  1640.         REFERENCE_TIME  AvgTimePerFrame; // Normal ActiveMovie units (100 nS)
  1641.  
  1642.     } BDA_TRANSPORT_INFO, *PBDA_TRANSPORT_INFO;
  1643.  
  1644.     typedef struct tagKS_DATARANGE_BDA_TRANSPORT {
  1645.        KSDATARANGE                  DataRange;
  1646.        BDA_TRANSPORT_INFO           BdaTransportInfo;
  1647.  
  1648.        //   Transport specifier can go here if required
  1649.        //
  1650.     } KS_DATARANGE_BDA_TRANSPORT, *PKS_DATARANGE_BDA_TRANSPORT;
  1651.  
  1652.  
  1653.  
  1654.     //===========================================================================
  1655.     //
  1656.     //  BDA Stream Format GUIDs
  1657.     //
  1658.     //===========================================================================
  1659.  
  1660.     #define STATIC_KSDATAFORMAT_TYPE_BDA_ANTENNA\
  1661.         0x71985f41, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1662.     DEFINE_GUIDSTRUCT("71985F41-1CA1-11d3-9CC8-00C04F7971E0", KSDATAFORMAT_TYPE_BDA_ANTENNA);
  1663.     #define KSDATAFORMAT_TYPE_BDA_ANTENNA DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_ANTENNA)
  1664.  
  1665.  
  1666.     #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT\
  1667.         0xf4aeb342, 0x0329, 0x4fdd, 0xa8, 0xfd, 0x4a, 0xff, 0x49, 0x26, 0xc9, 0x78
  1668.     DEFINE_GUIDSTRUCT("F4AEB342-0329-4fdd-A8FD-4AFF4926C978", KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT);
  1669.     #define KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT)
  1670.  
  1671.  
  1672.     #define STATIC_KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT\
  1673.         0x8deda6fd, 0xac5f, 0x4334, 0x8e, 0xcf, 0xa4, 0xba, 0x8f, 0xa7, 0xd0, 0xf0
  1674.     DEFINE_GUIDSTRUCT("8DEDA6FD-AC5F-4334-8ECF-A4BA8FA7D0F0", KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT);
  1675.     #define KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT)
  1676.  
  1677.  
  1678.     #define STATIC_KSDATAFORMAT_TYPE_BDA_IF_SIGNAL\
  1679.         0x61be0b47, 0xa5eb, 0x499b, 0x9a, 0x85, 0x5b, 0x16, 0xc0, 0x7f, 0x12, 0x58
  1680.     DEFINE_GUIDSTRUCT("61BE0B47-A5EB-499b-9A85-5B16C07F1258", KSDATAFORMAT_TYPE_BDA_IF_SIGNAL);
  1681.     #define KSDATAFORMAT_TYPE_BDA_IF_SIGNAL DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_IF_SIGNAL)
  1682.  
  1683.  
  1684.     #define STATIC_KSDATAFORMAT_TYPE_MPEG2_SECTIONS\
  1685.         0x455f176c, 0x4b06, 0x47ce, 0x9a, 0xef, 0x8c, 0xae, 0xf7, 0x3d, 0xf7, 0xb5
  1686.     DEFINE_GUIDSTRUCT("455F176C-4B06-47CE-9AEF-8CAEF73DF7B5", KSDATAFORMAT_TYPE_MPEG2_SECTIONS);
  1687.     #define KSDATAFORMAT_TYPE_MPEG2_SECTIONS DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_SECTIONS)
  1688.  
  1689.  
  1690.     #define STATIC_KSDATAFORMAT_SUBTYPE_ATSC_SI\
  1691.         0xb3c7397c, 0xd303, 0x414d, 0xb3, 0x3c, 0x4e, 0xd2, 0xc9, 0xd2, 0x97, 0x33
  1692.     DEFINE_GUIDSTRUCT("B3C7397C-D303-414D-B33C-4ED2C9D29733", KSDATAFORMAT_SUBTYPE_ATSC_SI);
  1693.     #define KSDATAFORMAT_SUBTYPE_SUBTYPE_ATSC_SI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ATSC_SI)
  1694.  
  1695.  
  1696.     #define STATIC_KSDATAFORMAT_SUBTYPE_DVB_SI\
  1697.         0xe9dd31a3, 0x221d, 0x4adb, 0x85, 0x32, 0x9a, 0xf3, 0x9, 0xc1, 0xa4, 0x8
  1698.     DEFINE_GUIDSTRUCT("e9dd31a3-221d-4adb-8532-9af309c1a408", KSDATAFORMAT_SUBTYPE_DVB_SI);
  1699.     #define KSDATAFORMAT_SUBTYPE_SUBTYPE_DVB_SI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DVB_SI)
  1700.  
  1701.  
  1702.     #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP\
  1703.         0x762e3f66, 0x336f, 0x48d1, 0xbf, 0x83, 0x2b, 0x0, 0x35, 0x2c, 0x11, 0xf0
  1704.     DEFINE_GUIDSTRUCT("762E3F66-336F-48d1-BF83-2B00352C11F0", KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP);
  1705.     #define KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP)
  1706.  
  1707.     #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP\
  1708.         0x951727db, 0xd2ce, 0x4528, 0x96, 0xf6, 0x33, 0x1, 0xfa, 0xbb, 0x2d, 0xe0
  1709.     DEFINE_GUIDSTRUCT("951727DB-D2CE-4528-96F6-3301FABB2DE0", KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP);
  1710.     #define KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP)
  1711.  
  1712.     //===========================================================================
  1713.     //
  1714.     //  KSPinName Definitions for BDA
  1715.     //
  1716.     //===========================================================================
  1717.  
  1718.     //  Pin name for a BDA transport pin
  1719.     //
  1720.     // {78216A81-CFA8-493e-9711-36A61C08BD9D}
  1721.     //
  1722.     #define STATIC_PINNAME_BDA_TRANSPORT \
  1723.         0x78216a81, 0xcfa8, 0x493e, 0x97, 0x11, 0x36, 0xa6, 0x1c, 0x8, 0xbd, 0x9d
  1724.     DEFINE_GUIDSTRUCT("78216A81-CFA8-493e-9711-36A61C08BD9D", PINNAME_BDA_TRANSPORT);
  1725.     #define PINNAME_BDA_TRANSPORT DEFINE_GUIDNAMED(PINNAME_BDA_TRANSPORT)
  1726.  
  1727.  
  1728.     //  Pin name for a BDA analog video pin
  1729.     //
  1730.     // {5C0C8281-5667-486c-8482-63E31F01A6E9}
  1731.     //
  1732.     #define STATIC_PINNAME_BDA_ANALOG_VIDEO \
  1733.         0x5c0c8281, 0x5667, 0x486c, 0x84, 0x82, 0x63, 0xe3, 0x1f, 0x1, 0xa6, 0xe9
  1734.     DEFINE_GUIDSTRUCT("5C0C8281-5667-486c-8482-63E31F01A6E9", PINNAME_BDA_ANALOG_VIDEO);
  1735.     #define PINNAME_BDA_ANALOG_VIDEO DEFINE_GUIDNAMED(PINNAME_BDA_ANALOG_VIDEO)
  1736.  
  1737.  
  1738.     //  Pin name for a BDA analog audio pin
  1739.     //
  1740.     // {D28A580A-9B1F-4b0c-9C33-9BF0A8EA636B}
  1741.     //
  1742.     #define STATIC_PINNAME_BDA_ANALOG_AUDIO \
  1743.         0xd28a580a, 0x9b1f, 0x4b0c, 0x9c, 0x33, 0x9b, 0xf0, 0xa8, 0xea, 0x63, 0x6b
  1744.     DEFINE_GUIDSTRUCT("D28A580A-9B1F-4b0c-9C33-9BF0A8EA636B", PINNAME_BDA_ANALOG_AUDIO);
  1745.     #define PINNAME_BDA_ANALOG_AUDIO DEFINE_GUIDNAMED(PINNAME_BDA_ANALOG_AUDIO)
  1746.  
  1747.  
  1748.     //  Pin name for a BDA FM Radio pin
  1749.     //
  1750.     // {D2855FED-B2D3-4eeb-9BD0-193436A2F890}
  1751.     //
  1752.     #define STATIC_PINNAME_BDA_FM_RADIO \
  1753.         0xd2855fed, 0xb2d3, 0x4eeb, 0x9b, 0xd0, 0x19, 0x34, 0x36, 0xa2, 0xf8, 0x90
  1754.     DEFINE_GUIDSTRUCT("D2855FED-B2D3-4eeb-9BD0-193436A2F890", PINNAME_BDA_FM_RADIO);
  1755.     #define PINNAME_BDA_FM_RADIO DEFINE_GUIDNAMED(PINNAME_BDA_FM_RADIO)
  1756.  
  1757.  
  1758.     //  Pin name for a BDA Intermediate Frequency pin
  1759.     //
  1760.     // {1A9D4A42-F3CD-48a1-9AEA-71DE133CBE14}
  1761.     //
  1762.     #define STATIC_PINNAME_BDA_IF_PIN \
  1763.         0x1a9d4a42, 0xf3cd, 0x48a1, 0x9a, 0xea, 0x71, 0xde, 0x13, 0x3c, 0xbe, 0x14
  1764.     DEFINE_GUIDSTRUCT("1A9D4A42-F3CD-48a1-9AEA-71DE133CBE14", PINNAME_BDA_IF_PIN);
  1765.     #define PINNAME_BDA_IF_PIN DEFINE_GUIDNAMED(PINNAME_BDA_IF_PIN)
  1766.  
  1767.  
  1768.     //  Pin name for a BDA Open Cable PSIP pin
  1769.     //
  1770.     // {297BB104-E5C9-4ACE-B123-95C3CBB24D4F}
  1771.     //
  1772.     #define STATIC_PINNAME_BDA_OPENCABLE_PSIP_PIN \
  1773.         0x297bb104, 0xe5c9, 0x4ace, 0xb1, 0x23, 0x95, 0xc3, 0xcb, 0xb2, 0x4d, 0x4f
  1774.     DEFINE_GUIDSTRUCT("297BB104-E5C9-4ACE-B123-95C3CBB24D4F", PINNAME_BDA_OPENCABLE_PSIP_PIN);
  1775.     #define PINNAME_BDA_OPENCABLE_PSIP_PIN DEFINE_GUIDNAMED(PINNAME_BDA_OPENCABLE_PSIP_PIN)
  1776.  
  1777.  
  1778.     //===========================================================================
  1779.     //
  1780.     //  KSProperty Set Definitions for BDA
  1781.     //
  1782.     //===========================================================================
  1783.  
  1784.  
  1785.     //------------------------------------------------------------
  1786.     //
  1787.     //  BDA Network Ethernet Filter Property Set
  1788.     //
  1789.     // {71985F43-1CA1-11d3-9CC8-00C04F7971E0}
  1790.     //
  1791.     #define STATIC_KSPROPSETID_BdaEthernetFilter \
  1792.         0x71985f43, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1793.     DEFINE_GUIDSTRUCT("71985F43-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaEthernetFilter);
  1794.     #define KSPROPSETID_BdaEthernetFilter DEFINE_GUIDNAMED(KSPROPSETID_BdaEthernetFilter)
  1795.  
  1796.     typedef enum {
  1797.         KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST_SIZE = 0,
  1798.         KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST,
  1799.         KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_MODE
  1800.     } KSPROPERTY_BDA_ETHERNET_FILTER;
  1801.  
  1802.     #define DEFINE_KSPROPERTY_ITEM_BDA_ETHERNET_FILTER_MULTICAST_LIST_SIZE(GetHandler, SetHandler)\
  1803.         DEFINE_KSPROPERTY_ITEM(\
  1804.             KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST_SIZE,\
  1805.             (GetHandler),\
  1806.             sizeof(KSPROPERTY),\
  1807.             sizeof(ULONG),\
  1808.             FALSE,\
  1809.             NULL, 0, NULL, NULL, 0)
  1810.  
  1811.     #define DEFINE_KSPROPERTY_ITEM_BDA_ETHERNET_FILTER_MULTICAST_LIST(GetHandler, SetHandler)\
  1812.         DEFINE_KSPROPERTY_ITEM(\
  1813.             KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_LIST,\
  1814.             (GetHandler),\
  1815.             sizeof(KSPROPERTY),\
  1816.             sizeof(BDA_ETHERNET_ADDRESS_LIST),\
  1817.             (SetHandler),\
  1818.             NULL, 0, NULL, NULL, 0)
  1819.  
  1820.     #define DEFINE_KSPROPERTY_ITEM_BDA_ETHERNET_FILTER_MULTICAST_MODE(GetHandler, SetHandler)\
  1821.         DEFINE_KSPROPERTY_ITEM(\
  1822.             KSPROPERTY_BDA_ETHERNET_FILTER_MULTICAST_MODE,\
  1823.             (GetHandler),\
  1824.             sizeof(KSPROPERTY),\
  1825.             sizeof(BDA_MULTICAST_MODE),\
  1826.             (SetHandler),\
  1827.             NULL, 0, NULL, NULL, 0)
  1828.  
  1829.  
  1830.  
  1831.     //------------------------------------------------------------
  1832.     //
  1833.     //  BDA Network IPv4 Filter Property Set
  1834.     //
  1835.     // {71985F44-1CA1-11d3-9CC8-00C04F7971E0}
  1836.     //
  1837.     #define STATIC_KSPROPSETID_BdaIPv4Filter \
  1838.         0x71985f44, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1839.     DEFINE_GUIDSTRUCT("71985F44-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaIPv4Filter);
  1840.     #define KSPROPSETID_BdaIPv4Filter DEFINE_GUIDNAMED(KSPROPSETID_BdaIPv4Filter)
  1841.  
  1842.     typedef enum {
  1843.         KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST_SIZE = 0,
  1844.         KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST,
  1845.         KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_MODE
  1846.     } KSPROPERTY_BDA_IPv4_FILTER;
  1847.  
  1848.     #define DEFINE_KSPROPERTY_ITEM_BDA_IPv4_FILTER_MULTICAST_LIST_SIZE(GetHandler, SetHandler)\
  1849.         DEFINE_KSPROPERTY_ITEM(\
  1850.             KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST_SIZE,\
  1851.             (GetHandler),\
  1852.             sizeof(KSPROPERTY),\
  1853.             sizeof(ULONG),\
  1854.             FALSE,\
  1855.             NULL, 0, NULL, NULL, 0)
  1856.  
  1857.     #define DEFINE_KSPROPERTY_ITEM_BDA_IPv4_FILTER_MULTICAST_LIST(GetHandler, SetHandler)\
  1858.         DEFINE_KSPROPERTY_ITEM(\
  1859.             KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_LIST,\
  1860.             (GetHandler),\
  1861.             sizeof(KSPROPERTY),\
  1862.             sizeof(BDA_IPv4_ADDRESS_LIST),\
  1863.             (SetHandler),\
  1864.             NULL, 0, NULL, NULL, 0)
  1865.  
  1866.     #define DEFINE_KSPROPERTY_ITEM_BDA_IPv4_FILTER_MULTICAST_MODE(GetHandler, SetHandler)\
  1867.         DEFINE_KSPROPERTY_ITEM(\
  1868.             KSPROPERTY_BDA_IPv4_FILTER_MULTICAST_MODE,\
  1869.             (GetHandler),\
  1870.             sizeof(KSPROPERTY),\
  1871.             sizeof(BDA_MULTICAST_MODE),\
  1872.             (SetHandler),\
  1873.             NULL, 0, NULL, NULL, 0)
  1874.  
  1875.  
  1876.  
  1877.     //------------------------------------------------------------
  1878.     //
  1879.     //  BDA Network IPv6 Filter Property Set
  1880.     //
  1881.     // {E1785A74-2A23-4fb3-9245-A8F88017EF33}
  1882.     //
  1883.     #define STATIC_KSPROPSETID_BdaIPv6Filter \
  1884.         0xe1785a74, 0x2a23, 0x4fb3, 0x92, 0x45, 0xa8, 0xf8, 0x80, 0x17, 0xef, 0x33
  1885.     DEFINE_GUIDSTRUCT("E1785A74-2A23-4fb3-9245-A8F88017EF33", KSPROPSETID_BdaIPv6Filter);
  1886.     #define KSPROPSETID_BdaIPv6Filter DEFINE_GUIDNAMED(KSPROPSETID_BdaIPv6Filter)
  1887.  
  1888.     typedef enum {
  1889.         KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST_SIZE = 0,
  1890.         KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST,
  1891.         KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_MODE
  1892.     } KSPROPERTY_BDA_IPv6_FILTER;
  1893.  
  1894.     #define DEFINE_KSPROPERTY_ITEM_BDA_IPv6_FILTER_MULTICAST_LIST_SIZE(GetHandler, SetHandler)\
  1895.         DEFINE_KSPROPERTY_ITEM(\
  1896.             KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST_SIZE,\
  1897.             (GetHandler),\
  1898.             sizeof(KSPROPERTY),\
  1899.             sizeof(ULONG),\
  1900.             FALSE,\
  1901.             NULL, 0, NULL, NULL, 0)
  1902.  
  1903.     #define DEFINE_KSPROPERTY_ITEM_BDA_IPv6_FILTER_MULTICAST_LIST(GetHandler, SetHandler)\
  1904.         DEFINE_KSPROPERTY_ITEM(\
  1905.             KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_LIST,\
  1906.             (GetHandler),\
  1907.             sizeof(KSPROPERTY),\
  1908.             sizeof(BDA_IPv6_ADDRESS_LIST),\
  1909.             (SetHandler),\
  1910.             NULL, 0, NULL, NULL, 0)
  1911.  
  1912.     #define DEFINE_KSPROPERTY_ITEM_BDA_IPv6_FILTER_MULTICAST_MODE(GetHandler, SetHandler)\
  1913.         DEFINE_KSPROPERTY_ITEM(\
  1914.             KSPROPERTY_BDA_IPv6_FILTER_MULTICAST_MODE,\
  1915.             (GetHandler),\
  1916.             sizeof(KSPROPERTY),\
  1917.             sizeof(BDA_MULTICAST_MODE),\
  1918.             (SetHandler),\
  1919.             NULL, 0, NULL, NULL, 0)
  1920.  
  1921.  
  1922.  
  1923.     //------------------------------------------------------------
  1924.     //
  1925.     //
  1926.     //  BDA Signal Property Set
  1927.     //
  1928.     //  {D2F1644B-B409-11d2-BC69-00A0C9EE9E16}
  1929.     //
  1930.     #define STATIC_KSPROPSETID_BdaSignal \
  1931.         0xd2f1644b, 0xb409, 0x11d2, 0xbc, 0x69, 0x0, 0xa0, 0xc9, 0xee, 0x9e, 0x16
  1932.     DEFINE_GUIDSTRUCT("D2F1644B-B409-11d2-BC69-00A0C9EE9E16", KSPROPSETID_BdaSignal);
  1933.     #define KSPROPSETID_BdaSignal DEFINE_GUIDNAMED(KSPROPSETID_BdaSignal)
  1934.  
  1935.     typedef enum {
  1936.         KSPROPERTY_BDA_SIGNAL_SOURCE = 0,
  1937.         KSPROPERTY_BDA_SIGNAL_TUNING_SPACE,
  1938.         KSPROPERTY_BDA_SIGNAL_NETWORK_TYPE,
  1939.         KSPROPERTY_BDA_SIGNAL_STATE
  1940.     } KSPROPERTY_BDA_SIGNAL;
  1941.  
  1942.     #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_SOURCE(GetHandler, SetHandler)\
  1943.         DEFINE_KSPROPERTY_ITEM(\
  1944.             KSPROPERTY_BDA_SIGNAL_SOURCE,\
  1945.             (GetHandler),\
  1946.             sizeof(KSPROPERTY),\
  1947.             sizeof(ULONG),\
  1948.             (SetHandler),\
  1949.             NULL, 0, NULL, NULL, 0)
  1950.  
  1951.     #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_TUNING_SPACE(GetHandler, SetHandler)\
  1952.         DEFINE_KSPROPERTY_ITEM(\
  1953.             KSPROPERTY_BDA_SIGNAL_TUNING_SPACE,\
  1954.             (GetHandler),\
  1955.             sizeof(KSPROPERTY),\
  1956.             sizeof(GUID),\
  1957.             (SetHandler),\
  1958.             NULL, 0, NULL, NULL, 0)
  1959.  
  1960.     #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_NETWORK_TYPE(GetHandler, SetHandler)\
  1961.         DEFINE_KSPROPERTY_ITEM(\
  1962.             KSPROPERTY_BDA_SIGNAL_NETWORK_TYPE,\
  1963.             (GetHandler),\
  1964.             sizeof(KSPROPERTY),\
  1965.             sizeof(GUID),\
  1966.             (SetHandler),\
  1967.             NULL, 0, NULL, NULL, 0)
  1968.  
  1969.     #define DEFINE_KSPROPERTY_ITEM_BDA_SIGNAL_STATE(GetHandler, SetHandler)\
  1970.         DEFINE_KSPROPERTY_ITEM(\
  1971.             KSPROPERTY_BDA_SIGNAL_STATE,\
  1972.             (GetHandler),\
  1973.             sizeof(KSPROPERTY),\
  1974.             sizeof(BDA_SIGNAL_STATE),\
  1975.             (SetHandler),\
  1976.             NULL, 0, NULL, NULL, 0)
  1977.  
  1978.  
  1979.  
  1980.     //------------------------------------------------------------
  1981.     //
  1982.     //
  1983.     //  BDA Change Sync Method Set
  1984.     //
  1985.     // {FD0A5AF3-B41D-11d2-9C95-00C04F7971E0}
  1986.     //
  1987.     #define STATIC_KSMETHODSETID_BdaChangeSync \
  1988.         0xfd0a5af3, 0xb41d, 0x11d2, 0x9c, 0x95, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  1989.     DEFINE_GUIDSTRUCT("FD0A5AF3-B41D-11d2-9C95-00C04F7971E0", KSMETHODSETID_BdaChangeSync);
  1990.     #define KSMETHODSETID_BdaChangeSync DEFINE_GUIDNAMED(KSMETHODSETID_BdaChangeSync)
  1991.  
  1992.     typedef enum {
  1993.         KSMETHOD_BDA_START_CHANGES = 0,
  1994.         KSMETHOD_BDA_CHECK_CHANGES,
  1995.         KSMETHOD_BDA_COMMIT_CHANGES,
  1996.         KSMETHOD_BDA_GET_CHANGE_STATE
  1997.     } KSMETHOD_BDA_CHANGE_SYNC;
  1998.  
  1999.     #define DEFINE_KSMETHOD_ITEM_BDA_START_CHANGES(MethodHandler, SupportHandler)\
  2000.         DEFINE_KSMETHOD_ITEM(\
  2001.             KSMETHOD_BDA_START_CHANGES,\
  2002.             KSMETHOD_TYPE_NONE,\
  2003.             (MethodHandler),\
  2004.             sizeof(KSMETHOD),\
  2005.             0,\
  2006.             SupportHandler)
  2007.  
  2008.     #define DEFINE_KSMETHOD_ITEM_BDA_CHECK_CHANGES(MethodHandler, SupportHandler)\
  2009.         DEFINE_KSMETHOD_ITEM(\
  2010.             KSMETHOD_BDA_CHECK_CHANGES,\
  2011.             KSMETHOD_TYPE_NONE,\
  2012.             (MethodHandler),\
  2013.             sizeof(KSMETHOD),\
  2014.             0,\
  2015.             SupportHandler)
  2016.  
  2017.     #define DEFINE_KSMETHOD_ITEM_BDA_COMMIT_CHANGES(MethodHandler, SupportHandler)\
  2018.         DEFINE_KSMETHOD_ITEM(\
  2019.             KSMETHOD_BDA_COMMIT_CHANGES,\
  2020.             KSMETHOD_TYPE_NONE,\
  2021.             (MethodHandler),\
  2022.             sizeof(KSMETHOD),\
  2023.             0,\
  2024.             SupportHandler)
  2025.  
  2026.     #define DEFINE_KSMETHOD_ITEM_BDA_GET_CHANGE_STATE(MethodHandler, SupportHandler)\
  2027.         DEFINE_KSMETHOD_ITEM(\
  2028.             KSMETHOD_BDA_GET_CHANGE_STATE,\
  2029.             KSMETHOD_TYPE_READ,\
  2030.             (MethodHandler),\
  2031.             sizeof(KSMETHOD),\
  2032.             0,\
  2033.             SupportHandler)
  2034.  
  2035.  
  2036.  
  2037.     //------------------------------------------------------------
  2038.     //
  2039.     //
  2040.     //  BDA Device Configuration Method Set
  2041.     //
  2042.     // {71985F45-1CA1-11d3-9CC8-00C04F7971E0}
  2043.     //
  2044.     #define STATIC_KSMETHODSETID_BdaDeviceConfiguration \
  2045.         0x71985f45, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2046.     DEFINE_GUIDSTRUCT("71985F45-1CA1-11d3-9CC8-00C04F7971E0", KSMETHODSETID_BdaDeviceConfiguration);
  2047.     #define KSMETHODSETID_BdaDeviceConfiguration DEFINE_GUIDNAMED(KSMETHODSETID_BdaDeviceConfiguration)
  2048.  
  2049.     typedef enum {
  2050.         KSMETHOD_BDA_CREATE_PIN_FACTORY = 0,
  2051.         KSMETHOD_BDA_DELETE_PIN_FACTORY,
  2052.         KSMETHOD_BDA_CREATE_TOPOLOGY
  2053.     } KSMETHOD_BDA_DEVICE_CONFIGURATION;
  2054.  
  2055.     #define DEFINE_KSMETHOD_ITEM_BDA_CREATE_PIN_FACTORY(MethodHandler, SupportHandler)\
  2056.         DEFINE_KSMETHOD_ITEM(\
  2057.             KSMETHOD_BDA_CREATE_PIN_FACTORY,\
  2058.             KSMETHOD_TYPE_READ,\
  2059.             (MethodHandler),\
  2060.             sizeof(KSM_PIN),\
  2061.             sizeof(ULONG),\
  2062.             SupportHandler)
  2063.  
  2064.     #define DEFINE_KSMETHOD_ITEM_BDA_DELETE_PIN_FACTORY(MethodHandler, SupportHandler)\
  2065.         DEFINE_KSMETHOD_ITEM(\
  2066.             KSMETHOD_BDA_DELETE_PIN_FACTORY,\
  2067.             KSMETHOD_TYPE_NONE,\
  2068.             (MethodHandler),\
  2069.             sizeof(KSM_PIN),\
  2070.             0,\
  2071.             SupportHandler)
  2072.  
  2073.     #define DEFINE_KSMETHOD_ITEM_BDA_CREATE_TOPOLOGY(MethodHandler, SupportHandler)\
  2074.         DEFINE_KSMETHOD_ITEM(\
  2075.             KSMETHOD_BDA_CREATE_TOPOLOGY,\
  2076.             KSMETHOD_TYPE_WRITE,\
  2077.             (MethodHandler),\
  2078.             sizeof(KSMETHOD),\
  2079.             sizeof(KSMULTIPLE_ITEM),\
  2080.             SupportHandler)
  2081.  
  2082.  
  2083.  
  2084.     //------------------------------------------------------------
  2085.     //
  2086.     //
  2087.     //  BDA Topology Property Set
  2088.     //
  2089.     // {A14EE835-0A23-11d3-9CC7-00C04F7971E0}
  2090.     //
  2091.     #define STATIC_KSPROPSETID_BdaTopology \
  2092.         0xa14ee835, 0x0a23, 0x11d3, 0x9c, 0xc7, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2093.     DEFINE_GUIDSTRUCT("A14EE835-0A23-11d3-9CC7-00C04F7971E0", KSPROPSETID_BdaTopology);
  2094.     #define KSPROPSETID_BdaTopology DEFINE_GUIDNAMED(KSPROPSETID_BdaTopology)
  2095.  
  2096.     typedef enum {
  2097.         KSPROPERTY_BDA_NODE_TYPES,
  2098.         KSPROPERTY_BDA_PIN_TYPES,
  2099.         KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,
  2100.         KSPROPERTY_BDA_NODE_METHODS,
  2101.         KSPROPERTY_BDA_NODE_PROPERTIES,
  2102.         KSPROPERTY_BDA_NODE_EVENTS,
  2103.         KSPROPERTY_BDA_CONTROLLING_PIN_ID,
  2104.         KSPROPERTY_BDA_NODE_DESCRIPTORS
  2105.      }KSPROPERTY_BDA_TOPOLOGY;
  2106.  
  2107.     #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_TYPES(GetHandler, SetHandler)\
  2108.         DEFINE_KSPROPERTY_ITEM(\
  2109.             KSPROPERTY_BDA_NODE_TYPES,\
  2110.             (GetHandler),\
  2111.             sizeof(KSPROPERTY),\
  2112.             0,\
  2113.             FALSE,\
  2114.             NULL, 0, NULL, NULL, 0)
  2115.  
  2116.     #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPES(GetHandler, SetHandler)\
  2117.         DEFINE_KSPROPERTY_ITEM(\
  2118.             KSPROPERTY_BDA_PIN_TYPES,\
  2119.             (GetHandler),\
  2120.             sizeof(KSPROPERTY),\
  2121.             0,\
  2122.             FALSE,\
  2123.             NULL, 0, NULL, NULL, 0)
  2124.  
  2125.     #define DEFINE_KSPROPERTY_ITEM_BDA_TEMPLATE_CONNECTIONS(GetHandler, SetHandler)\
  2126.         DEFINE_KSPROPERTY_ITEM(\
  2127.             KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,\
  2128.             (GetHandler),\
  2129.             sizeof(KSPROPERTY),\
  2130.             sizeof( BDA_TEMPLATE_CONNECTION),\
  2131.             FALSE,\
  2132.             NULL, 0, NULL, NULL, 0)
  2133.  
  2134.     #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_METHODS(GetHandler, SetHandler)\
  2135.         DEFINE_KSPROPERTY_ITEM(\
  2136.             KSPROPERTY_BDA_NODE_METHODS,\
  2137.             (GetHandler),\
  2138.             sizeof(KSPROPERTY),\
  2139.             0,\
  2140.             FALSE,\
  2141.             NULL, 0, NULL, NULL, 0)
  2142.  
  2143.     #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_PROPERTIES(GetHandler, SetHandler)\
  2144.         DEFINE_KSPROPERTY_ITEM(\
  2145.             KSPROPERTY_BDA_NODE_PROPERTIES,\
  2146.             (GetHandler),\
  2147.             sizeof(KSPROPERTY),\
  2148.             0,\
  2149.             FALSE,\
  2150.             NULL, 0, NULL, NULL, 0)
  2151.  
  2152.     #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_EVENTS(GetHandler, SetHandler)\
  2153.         DEFINE_KSPROPERTY_ITEM(\
  2154.             KSPROPERTY_BDA_NODE_EVENTS,\
  2155.             (GetHandler),\
  2156.             sizeof(KSPROPERTY),\
  2157.             0,\
  2158.             FALSE,\
  2159.             NULL, 0, NULL, NULL, 0)
  2160.  
  2161.     #define DEFINE_KSPROPERTY_ITEM_BDA_CONTROLLING_PIN_ID(GetHandler, SetHandler)\
  2162.         DEFINE_KSPROPERTY_ITEM(\
  2163.             KSPROPERTY_BDA_CONTROLLING_PIN_ID,\
  2164.             (GetHandler),\
  2165.             sizeof(KSP_BDA_NODE_PIN),\
  2166.             sizeof( ULONG),\
  2167.             FALSE,\
  2168.             NULL, 0, NULL, NULL, 0)
  2169.  
  2170.     #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_DESCRIPTORS(GetHandler, SetHandler)\
  2171.         DEFINE_KSPROPERTY_ITEM(\
  2172.             KSPROPERTY_BDA_NODE_DESCRIPTORS,\
  2173.             (GetHandler),\
  2174.             sizeof(KSPROPERTY),\
  2175.             0,\
  2176.             FALSE,\
  2177.             NULL, 0, NULL, NULL, 0)
  2178.  
  2179.  
  2180.  
  2181.     //------------------------------------------------------------
  2182.     //
  2183.     //
  2184.     //  BDA Pin Control Property Set
  2185.     //
  2186.     // {0DED49D5-A8B7-4d5d-97A1-12B0C195874D}
  2187.     //
  2188.     #define STATIC_KSPROPSETID_BdaPinControl \
  2189.         0xded49d5, 0xa8b7, 0x4d5d, 0x97, 0xa1, 0x12, 0xb0, 0xc1, 0x95, 0x87, 0x4d
  2190.     DEFINE_GUIDSTRUCT("0DED49D5-A8B7-4d5d-97A1-12B0C195874D", KSPROPSETID_BdaPinControl);
  2191.     #define KSPROPSETID_BdaPinControl DEFINE_GUIDNAMED(KSPROPSETID_BdaPinControl)
  2192.  
  2193.     typedef enum {
  2194.         KSPROPERTY_BDA_PIN_ID = 0,
  2195.         KSPROPERTY_BDA_PIN_TYPE
  2196.     } KSPROPERTY_BDA_PIN_CONTROL;
  2197.  
  2198.     #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_ID(GetHandler, SetHandler)\
  2199.         DEFINE_KSPROPERTY_ITEM(\
  2200.             KSPROPERTY_BDA_PIN_ID,\
  2201.             (GetHandler),\
  2202.             sizeof( KSPROPERTY),\
  2203.             sizeof( ULONG),\
  2204.             FALSE,\
  2205.             NULL, 0, NULL, NULL, 0)
  2206.  
  2207.     #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPE(GetHandler, SetHandler)\
  2208.         DEFINE_KSPROPERTY_ITEM(\
  2209.             KSPROPERTY_BDA_PIN_TYPE,\
  2210.             (GetHandler),\
  2211.             sizeof( KSPROPERTY),\
  2212.             sizeof( ULONG),\
  2213.             FALSE,\
  2214.             NULL, 0, NULL, NULL, 0)
  2215.  
  2216.  
  2217.  
  2218.     //------------------------------------------------------------
  2219.     //
  2220.     //
  2221.     //  BDA Pin Event Set
  2222.     //
  2223.     // {104781CD-50BD-40d5-95FB-087E0E86A591}
  2224.     //
  2225.     #define STATIC_KSEVENTSETID_BdaPinEvent \
  2226.         0x104781cd, 0x50bd, 0x40d5, 0x95, 0xfb, 0x08, 0x7e, 0xe, 0x86, 0xa5, 0x91
  2227.     DEFINE_GUIDSTRUCT("104781CD-50BD-40d5-95FB-087E0E86A591", KSEVENTSETID_BdaPinEvent);
  2228.     #define KSEVENTSETID_BdaPinEvent DEFINE_GUIDNAMED(KSEVENTSETID_BdaPinEvent)
  2229.  
  2230.     typedef enum {
  2231.         KSEVENT_BDA_PIN_CONNECTED = 0,
  2232.         KSEVENT_BDA_PIN_DISCONNECTED
  2233.     } KSPROPERTY_BDA_PIN_EVENT;
  2234.  
  2235.     #define DEFINE_KSEVENT_ITEM_BDA_PIN_CONNECTED(AddHandler, RemoveHandler, SupportHandler)\
  2236.         DEFINE_KSEVENT_ITEM(\
  2237.             KSEVENT_BDA_PIN_CONNECTED,\
  2238.             sizeof( KSEVENTDATA), \
  2239.             0, \
  2240.             (AddHandler),\
  2241.             (RemoveHandler),\
  2242.             (SupportHandler)\
  2243.             )
  2244.  
  2245.     #define DEFINE_KSEVENT_ITEM_BDA_PIN_DISCONNECTED(AddHandler, RemoveHandler, SupportHandler)\
  2246.         DEFINE_KSEVENT_ITEM(\
  2247.             KSEVENT_BDA_PIN_DISCONNECTED,\
  2248.             sizeof( KSEVENTDATA), \
  2249.             0, \
  2250.             (AddHandler),\
  2251.             (RemoveHandler),\
  2252.             (SupportHandler)\
  2253.             )
  2254.  
  2255.  
  2256.  
  2257.     //------------------------------------------------------------
  2258.     //
  2259.     //
  2260.     //  BDA Void Transform Property Set
  2261.     //
  2262.     // {71985F46-1CA1-11d3-9CC8-00C04F7971E0}
  2263.     //
  2264.     #define STATIC_KSPROPSETID_BdaVoidTransform \
  2265.         0x71985f46, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2266.     DEFINE_GUIDSTRUCT("71985F46-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaVoidTransform);
  2267.     #define KSPROPSETID_BdaVoidTransform DEFINE_GUIDNAMED(KSPROPSETID_BdaVoidTransform)
  2268.  
  2269.     typedef enum {
  2270.         KSPROPERTY_BDA_VOID_TRANSFORM_START = 0,
  2271.         KSPROPERTY_BDA_VOID_TRANSFORM_STOP
  2272.     } KSPROPERTY_BDA_VOID_TRANSFORM;
  2273.  
  2274.     #define DEFINE_KSPROPERTY_ITEM_BDA_VOID_TRANSFORM_START(GetHandler, SetHandler)\
  2275.         DEFINE_KSPROPERTY_ITEM(\
  2276.             KSPROPERTY_BDA_VOID_TRANSFORM_START,\
  2277.             FALSE,\
  2278.             sizeof(KSPROPERTY),\
  2279.             0,\
  2280.             (SetHandler),\
  2281.             NULL, 0, NULL, NULL, 0)
  2282.  
  2283.     #define DEFINE_KSPROPERTY_ITEM_BDA_VOID_TRANSFORM_STOP(GetHandler, SetHandler)\
  2284.         DEFINE_KSPROPERTY_ITEM(\
  2285.             KSPROPERTY_BDA_VOID_TRANSFORM_STOP,\
  2286.             FALSE,\
  2287.             sizeof(KSPROPERTY),\
  2288.             0,\
  2289.             (SetHandler),\
  2290.             NULL, 0, NULL, NULL, 0)
  2291.  
  2292.  
  2293.  
  2294.     //------------------------------------------------------------
  2295.     //
  2296.     //
  2297.     //  BDA Null Transform Property Set
  2298.     //
  2299.     // {DDF15B0D-BD25-11d2-9CA0-00C04F7971E0}
  2300.     //
  2301.     #define STATIC_KSPROPSETID_BdaNullTransform \
  2302.         0xddf15b0d, 0xbd25, 0x11d2, 0x9c, 0xa0, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2303.     DEFINE_GUIDSTRUCT("DDF15B0D-BD25-11d2-9CA0-00C04F7971E0", KSPROPSETID_BdaNullTransform);
  2304.     #define KSPROPSETID_BdaNullTransform DEFINE_GUIDNAMED(KSPROPSETID_BdaNullTransform)
  2305.  
  2306.     typedef enum {
  2307.         KSPROPERTY_BDA_NULL_TRANSFORM_START = 0,
  2308.         KSPROPERTY_BDA_NULL_TRANSFORM_STOP
  2309.     } KSPROPERTY_BDA_NULL_TRANSFORM;
  2310.  
  2311.     #define DEFINE_KSPROPERTY_ITEM_BDA_NULL_TRANSFORM_START(GetHandler, SetHandler)\
  2312.         DEFINE_KSPROPERTY_ITEM(\
  2313.             KSPROPERTY_BDA_NULL_TRANSFORM_START,\
  2314.             FALSE,\
  2315.             sizeof(KSPROPERTY),\
  2316.             0,\
  2317.             (SetHandler),\
  2318.             NULL, 0, NULL, NULL, 0)
  2319.  
  2320.     #define DEFINE_KSPROPERTY_ITEM_BDA_NULL_TRANSFORM_STOP(GetHandler, SetHandler)\
  2321.         DEFINE_KSPROPERTY_ITEM(\
  2322.             KSPROPERTY_BDA_NULL_TRANSFORM_STOP,\
  2323.             FALSE,\
  2324.             sizeof(KSPROPERTY),\
  2325.             0,\
  2326.             (SetHandler),\
  2327.             NULL, 0, NULL, NULL, 0)
  2328.  
  2329.  
  2330.  
  2331.     //------------------------------------------------------------
  2332.     //
  2333.     //
  2334.     //  BDA Frequency Filter Property Set
  2335.     //
  2336.     // {71985F47-1CA1-11d3-9CC8-00C04F7971E0}
  2337.     //
  2338.     #define STATIC_KSPROPSETID_BdaFrequencyFilter \
  2339.         0x71985f47, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2340.     DEFINE_GUIDSTRUCT("71985F47-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaFrequencyFilter);
  2341.     #define KSPROPSETID_BdaFrequencyFilter DEFINE_GUIDNAMED(KSPROPSETID_BdaFrequencyFilter)
  2342.  
  2343.     typedef enum {
  2344.         KSPROPERTY_BDA_RF_TUNER_FREQUENCY = 0,
  2345.         KSPROPERTY_BDA_RF_TUNER_POLARITY,
  2346.         KSPROPERTY_BDA_RF_TUNER_RANGE,
  2347.         KSPROPERTY_BDA_RF_TUNER_TRANSPONDER
  2348.     } KSPROPERTY_BDA_FREQUENCY_FILTER;
  2349.  
  2350.     #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_FREQUENCY(GetHandler, SetHandler)\
  2351.         DEFINE_KSPROPERTY_ITEM(\
  2352.             KSPROPERTY_BDA_RF_TUNER_FREQUENCY,\
  2353.             (GetHandler),\
  2354.             sizeof(KSP_NODE),\
  2355.             sizeof(ULONG),\
  2356.             (SetHandler),\
  2357.             NULL, 0, NULL, NULL, 0)
  2358.  
  2359.     #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_POLARITY(GetHandler, SetHandler)\
  2360.         DEFINE_KSPROPERTY_ITEM(\
  2361.             KSPROPERTY_BDA_RF_TUNER_POLARITY,\
  2362.             (GetHandler),\
  2363.             sizeof(KSP_NODE),\
  2364.             sizeof(ULONG),\
  2365.             (SetHandler),\
  2366.             NULL, 0, NULL, NULL, 0)
  2367.  
  2368.     #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_RANGE(GetHandler, SetHandler)\
  2369.         DEFINE_KSPROPERTY_ITEM(\
  2370.             KSPROPERTY_BDA_RF_TUNER_RANGE,\
  2371.             (GetHandler),\
  2372.             sizeof(KSP_NODE),\
  2373.             sizeof(ULONG),\
  2374.             (SetHandler),\
  2375.             NULL, 0, NULL, NULL, 0)
  2376.  
  2377.     #define DEFINE_KSPROPERTY_ITEM_BDA_RF_TUNER_TRANSPONDER(GetHandler, SetHandler)\
  2378.         DEFINE_KSPROPERTY_ITEM(\
  2379.             KSPROPERTY_BDA_RF_TUNER_TRANSPONDER,\
  2380.             (GetHandler),\
  2381.             sizeof(KSP_NODE),\
  2382.             sizeof(ULONG),\
  2383.             (SetHandler),\
  2384.             NULL, 0, NULL, NULL, 0)
  2385.  
  2386.  
  2387.  
  2388.     //------------------------------------------------------------
  2389.     //
  2390.     //
  2391.     //  BDA Digital Demodulator Property Set
  2392.     //
  2393.     // {EF30F379-985B-4d10-B640-A79D5E04E1E0}
  2394.     //
  2395.     #define STATIC_KSPROPSETID_BdaDigitalDemodulator \
  2396.         0xef30f379, 0x985b, 0x4d10, 0xb6, 0x40, 0xa7, 0x9d, 0x5e, 0x4, 0xe1, 0xe0
  2397.     DEFINE_GUIDSTRUCT("EF30F379-985B-4d10-B640-A79D5E04E1E0", KSPROPSETID_BdaDigitalDemodulator);
  2398.     #define KSPROPSETID_BdaDigitalDemodulator DEFINE_GUIDNAMED(KSPROPSETID_BdaDigitalDemodulator)
  2399.  
  2400.     typedef enum {
  2401.         KSPROPERTY_BDA_MODULATION_TYPE = 0,
  2402.         KSPROPERTY_BDA_INNER_FEC_TYPE,
  2403.         KSPROPERTY_BDA_INNER_FEC_RATE,
  2404.         KSPROPERTY_BDA_OUTER_FEC_TYPE,
  2405.         KSPROPERTY_BDA_OUTER_FEC_RATE,
  2406.         KSPROPERTY_BDA_SYMBOL_RATE,
  2407.         KSPROPERTY_BDA_SPECTRAL_INVERSION,
  2408.  
  2409.     } KSPROPERTY_BDA_DIGITAL_DEMODULATOR;
  2410.  
  2411.     #define DEFINE_KSPROPERTY_ITEM_BDA_MODULATION_TYPE(GetHandler, SetHandler)\
  2412.         DEFINE_KSPROPERTY_ITEM(\
  2413.             KSPROPERTY_BDA_MODULATION_TYPE,\
  2414.             (GetHandler),\
  2415.             sizeof(KSP_NODE),\
  2416.             sizeof(ModulationType),\
  2417.             (SetHandler),\
  2418.             NULL, 0, NULL, NULL, 0)
  2419.  
  2420.     #define DEFINE_KSPROPERTY_ITEM_BDA_INNER_FEC_TYPE(GetHandler, SetHandler)\
  2421.         DEFINE_KSPROPERTY_ITEM(\
  2422.             KSPROPERTY_BDA_INNER_FEC_TYPE,\
  2423.             (GetHandler),\
  2424.             sizeof(KSP_NODE),\
  2425.             sizeof(FECMethod),\
  2426.             (SetHandler),\
  2427.             NULL, 0, NULL, NULL, 0)
  2428.  
  2429.     #define DEFINE_KSPROPERTY_ITEM_BDA_INNER_FEC_RATE(GetHandler, SetHandler)\
  2430.         DEFINE_KSPROPERTY_ITEM(\
  2431.             KSPROPERTY_BDA_INNER_FEC_RATE,\
  2432.             (GetHandler),\
  2433.             sizeof(KSP_NODE),\
  2434.             sizeof(BinaryConvolutionCodeRate),\
  2435.             (SetHandler),\
  2436.             NULL, 0, NULL, NULL, 0)
  2437.  
  2438.     #define DEFINE_KSPROPERTY_ITEM_BDA_OUTER_FEC_TYPE(GetHandler, SetHandler)\
  2439.         DEFINE_KSPROPERTY_ITEM(\
  2440.             KSPROPERTY_BDA_OUTER_FEC_TYPE,\
  2441.             (GetHandler),\
  2442.             sizeof(KSP_NODE),\
  2443.             sizeof(FECMethod),\
  2444.             (SetHandler),\
  2445.             NULL, 0, NULL, NULL, 0)
  2446.  
  2447.     #define DEFINE_KSPROPERTY_ITEM_BDA_OUTER_FEC_RATE(GetHandler, SetHandler)\
  2448.         DEFINE_KSPROPERTY_ITEM(\
  2449.             KSPROPERTY_BDA_OUTER_FEC_RATE,\
  2450.             (GetHandler),\
  2451.             sizeof(KSP_NODE),\
  2452.             sizeof(BinaryConvolutionCodeRate),\
  2453.             (SetHandler),\
  2454.             NULL, 0, NULL, NULL, 0)
  2455.  
  2456.     #define DEFINE_KSPROPERTY_ITEM_BDA_SYMBOL_RATE(GetHandler, SetHandler)\
  2457.         DEFINE_KSPROPERTY_ITEM(\
  2458.             KSPROPERTY_BDA_SYMBOL_RATE,\
  2459.             (GetHandler),\
  2460.             sizeof(KSP_NODE),\
  2461.             sizeof(ULONG),\
  2462.             (SetHandler),\
  2463.             NULL, 0, NULL, NULL, 0)
  2464.  
  2465.     #define DEFINE_KSPROPERTY_ITEM_BDA_SPECTRAL_INVERSION(GetHandler, SetHandler)\
  2466.         DEFINE_KSPROPERTY_ITEM(\
  2467.             KSPROPERTY_BDA_SPECTRAL_INVERSION,\
  2468.             (GetHandler),\
  2469.             sizeof(KSP_NODE),\
  2470.             sizeof(SpectralInversion),\
  2471.             (SetHandler),\
  2472.             NULL, 0, NULL, NULL, 0)
  2473.  
  2474.  
  2475.  
  2476.     //------------------------------------------------------------
  2477.     //
  2478.     //
  2479.     //  BDA Autodemodulate Property Set
  2480.     //
  2481.     // {DDF15B12-BD25-11d2-9CA0-00C04F7971E0}
  2482.     //
  2483.     #define STATIC_KSPROPSETID_BdaAutodemodulate \
  2484.         0xddf15b12, 0xbd25, 0x11d2, 0x9c, 0xa0, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2485.     DEFINE_GUIDSTRUCT("DDF15B12-BD25-11d2-9CA0-00C04F7971E0", KSPROPSETID_BdaAutodemodulate);
  2486.     #define KSPROPSETID_BdaAutodemodulate DEFINE_GUIDNAMED(KSPROPSETID_BdaAutodemodulate)
  2487.  
  2488.     typedef enum {
  2489.         KSPROPERTY_BDA_AUTODEMODULATE_START = 0,
  2490.         KSPROPERTY_BDA_AUTODEMODULATE_STOP
  2491.     } KSPROPERTY_BDA_AUTODEMODULATE;
  2492.  
  2493.     #define DEFINE_KSPROPERTY_ITEM_BDA_AUTODEMODULATE_START(GetHandler, SetHandler)\
  2494.         DEFINE_KSPROPERTY_ITEM(\
  2495.             KSPROPERTY_BDA_AUTODEMODULATE_START,\
  2496.             FALSE,\
  2497.             sizeof(KSP_NODE),\
  2498.             0,\
  2499.             (SetHandler),\
  2500.             NULL, 0, NULL, NULL, 0)
  2501.  
  2502.     #define DEFINE_KSPROPERTY_ITEM_BDA_AUTODEMODULATE_STOP(GetHandler, SetHandler)\
  2503.         DEFINE_KSPROPERTY_ITEM(\
  2504.             KSPROPERTY_BDA_AUTODEMODULATE_STOP,\
  2505.             FALSE,\
  2506.             sizeof(KSP_NODE),\
  2507.             0,\
  2508.             (SetHandler),\
  2509.             NULL, 0, NULL, NULL, 0)
  2510.  
  2511.     //------------------------------------------------------------
  2512.     //
  2513.     //
  2514.     //  BDA PmtProcessor Property Set
  2515.     //
  2516.     // {516B99C5-971C-4aaf-B3F3-D9FDA8A15E16}
  2517.     //
  2518.  
  2519.     #define STATIC_KSPROPSETID_BdaPmtProcessor \
  2520.         0x516b99c5, 0x971c, 0x4aaf, 0xb3, 0xf3, 0xd9, 0xfd, 0xa8, 0xa1, 0x5e, 0x16
  2521.     DEFINE_GUIDSTRUCT("516B99C5-971C-4aaf-B3F3-D9FDA8A15E16", KSPROPSETID_BdaPmtProcessor);
  2522.     #define KSPROPSETID_BdaPmtProcessor DEFINE_GUIDNAMED(KSPROPSETID_BdaPmtProcessor)
  2523.  
  2524.     typedef enum {
  2525.         KSPROPERTY_BDA_PMTPROCESSOR_PMT = 0,
  2526.     } KSPROPERTY_BDA_PMTPROCESSOR;
  2527.  
  2528.     #define DEFINE_KSPROPERTY_ITEM_BDA_PMTPROCESSOR_PMT(GetHandler, SetHandler)\
  2529.         DEFINE_KSPROPERTY_ITEM(\
  2530.             KSPROPERTY_BDA_PMTPROCESSOR_PMT,\
  2531.             (GetHandler),\
  2532.             sizeof(KSP_NODE),\
  2533.             sizeof(BDA_PMT),\
  2534.             (SetHandler),\
  2535.             NULL, 0, NULL, NULL, 0)
  2536.  
  2537.  
  2538.     //------------------------------------------------------------
  2539.     //
  2540.     //
  2541.     //  BDA Descriptor Property Set
  2542.     //
  2543.     // {DE6A1C9E-87DF-48aa-95AA-289B7AA4F49F}
  2544.     //
  2545.  
  2546.     #define STATIC_KSPROPSETID_BdaDescriptor \
  2547.         0xde6a1c9e, 0x87df, 0x48aa, 0x95, 0xaa, 0x28, 0x9b, 0x7a, 0xa4, 0xf4, 0x9f
  2548.     DEFINE_GUIDSTRUCT("DE6A1C9E-87DF-48aa-95AA-289B7AA4F49F", KSPROPSETID_BdaDescriptor);
  2549.     #define KSPROPSETID_BdaDescriptor DEFINE_GUIDNAMED(KSPROPSETID_BdaDescriptor)
  2550.  
  2551.     typedef enum {
  2552.         KSPROPERTY_BDA_DESCRIPTOR_CAT_DESC = 0,
  2553.         KSPROPERTY_BDA_DESCRIPTOR_ES_DESC,
  2554.         KSPROPERTY_BDA_DESCRIPTOR_PROGRAM_DESC
  2555.     } KSPROPERTY_BDA_DESCRIPTOR;
  2556.  
  2557.     #define DEFINE_KSPROPERTY_ITEM_BDA_DESCRIPTOR_CAT_DESC(GetHandler, SetHandler)\
  2558.         DEFINE_KSPROPERTY_ITEM(\
  2559.             KSPROPERTY_BDA_DESCRIPTOR_CAT_DESC,\
  2560.             (GetHandler),\
  2561.             sizeof(KSP_NODE),\
  2562.             sizeof(BDA_CAT_DESCRIPTOR),\
  2563.             (SetHandler),\
  2564.             NULL, 0, NULL, NULL, 0)
  2565.  
  2566.     #define DEFINE_KSPROPERTY_ITEM_BDA_DESCRIPTOR_ES_DESC(GetHandler, SetHandler)\
  2567.         DEFINE_KSPROPERTY_ITEM(\
  2568.             KSPROPERTY_BDA_DESCRIPTOR_ES_DESC,\
  2569.             (GetHandler),\
  2570.             sizeof(KSP_NODE),\
  2571.             sizeof(BDA_ES_DESCRIPTOR),\
  2572.             (SetHandler),\
  2573.             NULL, 0, NULL, NULL, 0)
  2574.  
  2575.     #define DEFINE_KSPROPERTY_ITEM_BDA_DESCRIPTOR_PROGRAM_DESC(GetHandler, SetHandler)\
  2576.         DEFINE_KSPROPERTY_ITEM(\
  2577.             KSPROPERTY_BDA_DESCRIPTOR_PROGRAM_DESC,\
  2578.             (GetHandler),\
  2579.             sizeof(KSP_NODE),\
  2580.             sizeof(BDA_PROGRAM_DESCRIPTOR),\
  2581.             (SetHandler),\
  2582.             NULL, 0, NULL, NULL, 0)
  2583.  
  2584.  
  2585.  
  2586.     //------------------------------------------------------------
  2587.     //
  2588.     //
  2589.     //  BDA EsMap Property Set
  2590.     //
  2591.     // {FA14A8B3-6068-48ef-96DD-53010B985A7D}
  2592.     //
  2593.     #define STATIC_KSPROPSETID_BdaEsMap \
  2594.         0xfa14a8b3, 0x6068, 0x48ef, 0x96, 0xdd, 0x53, 0x1, 0xb, 0x98, 0x5a, 0x7d
  2595.     DEFINE_GUIDSTRUCT("FA14A8B3-6068-48ef-96DD-53010B985A7D", KSPROPSETID_BdaEsMap);
  2596.     #define KSPROPSETID_BdaEsMap DEFINE_GUIDNAMED(KSPROPSETID_BdaEsMap)
  2597.  
  2598.     typedef enum {
  2599.         KSPROPERTY_BDA_ESMAP_EMM_PIDS = 0,
  2600.         KSPROPERTY_BDA_ESMAP_ECM_PIDS,
  2601.         KSPROPERTY_BDA_ESMAP_MAP_LIST,
  2602.         KSPROPERTY_BDA_ESMAP_UPDATE_MAP,
  2603.         KSPROPERTY_BDA_ESMAP_REMOVE_MAP
  2604.     } KSPROPERTY_BDA_ESMAP;
  2605.  
  2606.     #define DEFINE_KSPROPERTY_ITEM_BDA_ESMAP_EMM_PIDS(GetHandler, SetHandler)\
  2607.         DEFINE_KSPROPERTY_ITEM(\
  2608.             KSPROPERTY_BDA_ESMAP_EMM_PIDS,\
  2609.             (GetHandler),\
  2610.             sizeof(KSP_NODE),\
  2611.             0,\
  2612.             (SetHandler),\
  2613.             NULL, 0, NULL, NULL, 0)
  2614.  
  2615.     #define DEFINE_KSPROPERTY_ITEM_BDA_ESMAP_ECM_PIDS(GetHandler, SetHandler)\
  2616.         DEFINE_KSPROPERTY_ITEM(\
  2617.             KSPROPERTY_BDA_ESMAP_ECM_PIDS,\
  2618.             (GetHandler),\
  2619.             sizeof(KSP_NODE_ESPID),\
  2620.             0,\
  2621.             (SetHandler),\
  2622.             NULL, 0, NULL, NULL, 0)
  2623.  
  2624.     #define DEFINE_KSPROPERTY_ITEM_BDA_ESMAP_MAP_LIST(GetHandler, SetHandler)\
  2625.         DEFINE_KSPROPERTY_ITEM(\
  2626.             KSPROPERTY_BDA_ESMAP_MAP_LIST,\
  2627.             (GetHandler),\
  2628.             sizeof(KSP_NODE),\
  2629.             0,\
  2630.             (SetHandler),\
  2631.             NULL, 0, NULL, NULL, 0)
  2632.  
  2633.     #define DEFINE_KSPROPERTY_ITEM_BDA_ESMAP_UPDATE_MAP(GetHandler, SetHandler)\
  2634.         DEFINE_KSPROPERTY_ITEM(\
  2635.             KSPROPERTY_BDA_ESMAP_UPDATE_MAP,\
  2636.             FALSE,\
  2637.             sizeof(KSP_NODE),\
  2638.             sizeof(BDA_ES_MAP),\
  2639.             (SetHandler),\
  2640.             NULL, 0, NULL, NULL, 0)
  2641.  
  2642.     #define DEFINE_KSPROPERTY_ITEM_BDA_ESMAP_REMOVE_MAP(GetHandler, SetHandler)\
  2643.         DEFINE_KSPROPERTY_ITEM(\
  2644.             KSPROPERTY_BDA_ESMAP_REMOVE_MAP,\
  2645.             FALSE,\
  2646.             sizeof(KSP_NODE),\
  2647.             sizeof(BDA_ES_MAP),\
  2648.             (SetHandler),\
  2649.             NULL, 0, NULL, NULL, 0)
  2650.  
  2651.  
  2652.     //------------------------------------------------------------
  2653.     //
  2654.     //
  2655.     //  BDA PID Filter Property Set
  2656.     //
  2657.     // {D0A67D65-08DF-4fec-8533-E5B550410B85}
  2658.     //
  2659.     #define STATIC_KSPROPSETID_BdaPIDFilter \
  2660.         0xd0a67d65, 0x8df, 0x4fec, 0x85, 0x33, 0xe5, 0xb5, 0x50, 0x41, 0xb, 0x85
  2661.     DEFINE_GUIDSTRUCT("D0A67D65-08DF-4fec-8533-E5B550410B85", KSPROPSETID_BdaPIDFilter);
  2662.     #define KSPROPSETID_BdaPIDFilter DEFINE_GUIDNAMED(KSPROPSETID_BdaPIDFilter)
  2663.  
  2664.     typedef enum {
  2665.         KSPROPERTY_BDA_PIDFILTER_MAP_PIDS = 0,
  2666.         KSPROPERTY_BDA_PIDFILTER_UNMAP_PIDS,
  2667.         KSPROPERTY_BDA_PIDFILTER_LIST_PIDS
  2668.     } KSPROPERTY_BDA_PIDFILTER;
  2669.  
  2670.     #define DEFINE_KSPROPERTY_ITEM_BDA_PIDFILTER_MAP_PIDS(GetHandler, SetHandler)\
  2671.         DEFINE_KSPROPERTY_ITEM(\
  2672.             KSPROPERTY_BDA_PIDFILTER_MAP_PIDS,\
  2673.             (GetHandler),\
  2674.             sizeof(KSP_NODE),\
  2675.             sizeof(BDA_PID_MAP),\
  2676.             (SetHandler),\
  2677.             NULL, 0, NULL, NULL, 0)
  2678.  
  2679.     #define DEFINE_KSPROPERTY_ITEM_BDA_PIDFILTER_UNMAP_PIDS(GetHandler, SetHandler)\
  2680.         DEFINE_KSPROPERTY_ITEM(\
  2681.             KSPROPERTY_BDA_PIDFILTER_UNMAP_PIDS,\
  2682.             (GetHandler),\
  2683.             sizeof(KSP_NODE),\
  2684.             sizeof(BDA_PID_UNMAP),\
  2685.             (SetHandler),\
  2686.             NULL, 0, NULL, NULL, 0)
  2687.  
  2688.     #define DEFINE_KSPROPERTY_ITEM_BDA_PIDFILTER_LIST_PIDS(GetHandler, SetHandler)\
  2689.         DEFINE_KSPROPERTY_ITEM(\
  2690.             KSPROPERTY_BDA_PIDFILTER_LIST_PIDS,\
  2691.             (GetHandler),\
  2692.             sizeof(KSP_NODE),\
  2693.             0,\
  2694.             (SetHandler),\
  2695.             NULL, 0, NULL, NULL, 0)
  2696.  
  2697.  
  2698.  
  2699.     //------------------------------------------------------------
  2700.     //
  2701.     //
  2702.     //  BDA CA Property Set
  2703.     //
  2704.     // {B0693766-5278-4ec6-B9E1-3CE40560EF5A}
  2705.     //
  2706.     #define STATIC_KSPROPSETID_BdaCA \
  2707.         0xb0693766, 0x5278, 0x4ec6, 0xb9, 0xe1, 0x3c, 0xe4, 0x5, 0x60, 0xef, 0x5a
  2708.     DEFINE_GUIDSTRUCT("B0693766-5278-4ec6-B9E1-3CE40560EF5A", KSPROPSETID_BdaCA);
  2709.     #define KSPROPSETID_BdaCA DEFINE_GUIDNAMED(KSPROPSETID_BdaCA)
  2710.  
  2711.     typedef enum {
  2712.         KSPROPERTY_BDA_ECM_MAP_STATUS = 0,
  2713.         KSPROPERTY_BDA_CA_MODULE_STATUS,
  2714.         KSPROPERTY_BDA_CA_SMART_CARD_STATUS,
  2715.         KSPROPERTY_BDA_CA_MODULE_UI
  2716.     } KSPROPERTY_BDA_CA;
  2717.  
  2718.     #define DEFINE_KSPROPERTY_ITEM_BDA_ECM_MAP_STATUS(GetHandler, SetHandler)\
  2719.         DEFINE_KSPROPERTY_ITEM(\
  2720.             KSPROPERTY_BDA_ECM_MAP_STATUS,\
  2721.             (GetHandler),\
  2722.             sizeof(KSP_NODE),\
  2723.             sizeof(ULONG),\
  2724.             (SetHandler),\
  2725.             NULL, 0, NULL, NULL, 0)
  2726.  
  2727.     #define DEFINE_KSPROPERTY_ITEM_BDA_CA_MODULE_STATUS(GetHandler, SetHandler)\
  2728.         DEFINE_KSPROPERTY_ITEM(\
  2729.             KSPROPERTY_BDA_CA_MODULE_STATUS,\
  2730.             (GetHandler),\
  2731.             sizeof(KSP_NODE),\
  2732.             sizeof(ULONG),\
  2733.             (SetHandler),\
  2734.             NULL, 0, NULL, NULL, 0)
  2735.  
  2736.     #define DEFINE_KSPROPERTY_ITEM_BDA_CA_SMART_CARD_STATUS(GetHandler, SetHandler)\
  2737.         DEFINE_KSPROPERTY_ITEM(\
  2738.             KSPROPERTY_BDA_CA_SMART_CARD_STATUS,\
  2739.             (GetHandler),\
  2740.             sizeof(KSP_NODE),\
  2741.             sizeof(ULONG),\
  2742.             (SetHandler),\
  2743.             NULL, 0, NULL, NULL, 0)
  2744.  
  2745.     #define DEFINE_KSPROPERTY_ITEM_BDA_CA_MODULE_UI(GetHandler, SetHandler)\
  2746.         DEFINE_KSPROPERTY_ITEM(\
  2747.             KSPROPERTY_BDA_CA_MODULE_UI,\
  2748.             (GetHandler),\
  2749.             sizeof(KSP_NODE),\
  2750.             sizeof(BDA_CA_MODULE_UI),\
  2751.             (SetHandler),\
  2752.             NULL, 0, NULL, NULL, 0)
  2753.  
  2754.  
  2755.  
  2756.     //------------------------------------------------------------
  2757.     //
  2758.     //
  2759.     //  BDA CA Event Set
  2760.     //
  2761.     // {488C4CCC-B768-4129-8EB1-B00A071F9068}
  2762.     //
  2763.     #define STATIC_KSEVENTSETID_BdaCAEvent \
  2764.         0x488c4ccc, 0xb768, 0x4129, 0x8e, 0xb1, 0xb0, 0xa, 0x7, 0x1f, 0x90, 0x68
  2765.     DEFINE_GUIDSTRUCT("488C4CCC-B768-4129-8EB1-B00A071F9068", KSEVENTSETID_BdaCAEvent);
  2766.     #define KSEVENTSETID_BdaCAEvent DEFINE_GUIDNAMED(KSEVENTSETID_BdaCAEvent)
  2767.  
  2768.     typedef enum {
  2769.         KSEVENT_BDA_ECM_MAP_STATUS_CHANGED = 0,
  2770.         KSEVENT_BDA_CA_MODULE_STATUS_CHANGED,
  2771.         KSEVENT_BDA_CA_SMART_CARD_STATUS_CHANGED,
  2772.         KSEVENT_BDA_CA_MODULE_UI_REQUESTED
  2773.     } KSPROPERTY_BDA_CA_EVENT;
  2774.  
  2775.     #define DEFINE_KSEVENT_BDA_ECM_MAP_STATUS_CHANGED(AddHandler, RemoveHandler, SupportHandler)\
  2776.         DEFINE_KSEVENT_ITEM(\
  2777.             KSEVENT_BDA_ECM_MAP_STATUS_CHANGED,\
  2778.             sizeof( KSEVENTDATA), \
  2779.             0, \
  2780.             (AddHandler),\
  2781.             (RemoveHandler),\
  2782.             (SupportHandler)\
  2783.             )
  2784.  
  2785.     #define DEFINE_KSEVENT_BDA_CA_MODULE_STATUS_CHANGED(AddHandler, RemoveHandler, SupportHandler)\
  2786.         DEFINE_KSEVENT_ITEM(\
  2787.             KSEVENT_BDA_CA_MODULE_STATUS_CHANGED,\
  2788.             sizeof( KSEVENTDATA), \
  2789.             0, \
  2790.             (AddHandler),\
  2791.             (RemoveHandler),\
  2792.             (SupportHandler)\
  2793.             )
  2794.  
  2795.     #define DEFINE_KSEVENT_BDA_CA_SMART_CARD_STATUS_CHANGED(AddHandler, RemoveHandler, SupportHandler)\
  2796.         DEFINE_KSEVENT_ITEM(\
  2797.             KSEVENT_BDA_CA_SMART_CARD_STATUS_CHANGED,\
  2798.             sizeof( KSEVENTDATA), \
  2799.             0, \
  2800.             (AddHandler),\
  2801.             (RemoveHandler),\
  2802.             (SupportHandler)\
  2803.             )
  2804.  
  2805.     #define DEFINE_KSEVENT_BDA_CA_MODULE_UI_REQUESTED(AddHandler, RemoveHandler, SupportHandler)\
  2806.         DEFINE_KSEVENT_ITEM(\
  2807.             KSEVENT_BDA_CA_MODULE_UI_REQUESTED,\
  2808.             sizeof( KSEVENTDATA), \
  2809.             0, \
  2810.             (AddHandler),\
  2811.             (RemoveHandler),\
  2812.             (SupportHandler)\
  2813.             )
  2814.  
  2815.  
  2816.     //===========================================================================
  2817.     //
  2818.     // BDA Filter Categories
  2819.     //
  2820.     //===========================================================================
  2821.  
  2822.     #define STATIC_KSCATEGORY_BDA_RECEIVER_COMPONENT \
  2823.         0xFD0A5AF4, 0xB41D, 0x11d2, 0x9c, 0x95, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2824.     DEFINE_GUIDSTRUCT("FD0A5AF4-B41D-11d2-9C95-00C04F7971E0", KSCATEGORY_BDA_RECEIVER_COMPONENT);
  2825.     #define KSCATEGORY_BDA_RECEIVER_COMPONENT DEFINE_GUIDNAMED(KSCATEGORY_BDA_RECEIVER_COMPONENT)
  2826.  
  2827.  
  2828.     #define STATIC_KSCATEGORY_BDA_NETWORK_TUNER \
  2829.         0x71985f48, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2830.     DEFINE_GUIDSTRUCT("71985F48-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_NETWORK_TUNER);
  2831.     #define KSCATEGORY_BDA_NETWORK_TUNER DEFINE_GUIDNAMED(KSCATEGORY_BDA_NETWORK_TUNER)
  2832.  
  2833.  
  2834.     #define STATIC_KSCATEGORY_BDA_NETWORK_EPG \
  2835.         0x71985f49, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2836.     DEFINE_GUIDSTRUCT("71985F49-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_NETWORK_EPG);
  2837.     #define KSCATEGORY_BDA_NETWORK_EPG DEFINE_GUIDNAMED(KSCATEGORY_BDA_NETWORK_EPG)
  2838.  
  2839.  
  2840.     #define STATIC_KSCATEGORY_BDA_IP_SINK \
  2841.         0x71985f4aL, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x00, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2842.     DEFINE_GUIDSTRUCT("71985F4A-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_IP_SINK);
  2843.     #define KSCATEGORY_IP_SINK DEFINE_GUIDNAMED(KSCATEGORY_BDA_IP_SINK)
  2844.  
  2845.  
  2846.     #define STATIC_KSCATEGORY_BDA_NETWORK_PROVIDER \
  2847.         0x71985f4b, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2848.     DEFINE_GUIDSTRUCT("71985F4B-1CA1-11d3-9CC8-00C04F7971E0", KSCATEGORY_BDA_NETWORK_PROVIDER);
  2849.     #define KSCATEGORY_BDA_NETWORK_PROVIDER DEFINE_GUIDNAMED(KSCATEGORY_BDA_NETWORK_PROVIDER)
  2850.  
  2851.     // {A2E3074F-6C3D-11d3-B653-00C04F79498E}
  2852.     #define STATIC_KSCATEGORY_BDA_TRANSPORT_INFORMATION \
  2853.             0xa2e3074f, 0x6c3d, 0x11d3, 0xb6, 0x53, 0x0, 0xc0, 0x4f, 0x79, 0x49, 0x8e
  2854.     DEFINE_GUIDSTRUCT("A2E3074F-6C3D-11d3-B653-00C04F79498E", KSCATEGORY_BDA_TRANSPORT_INFORMATION);
  2855.     #define KSCATEGORY_BDA_TRANSPORT_INFORMATION DEFINE_GUIDNAMED(KSCATEGORY_BDA_TRANSPORT_INFORMATION)
  2856.  
  2857.  
  2858.     //===========================================================================
  2859.     //
  2860.     // BDA Node Categories
  2861.     //
  2862.     //===========================================================================
  2863.  
  2864.  
  2865.     #define STATIC_KSNODE_BDA_RF_TUNER \
  2866.         0x71985f4c, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2867.     DEFINE_GUIDSTRUCT("71985F4C-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_RF_TUNER);
  2868.     #define KSNODE_BDA_RF_TUNER DEFINE_GUIDNAMED(KSNODE_BDA_RF_TUNER)
  2869.  
  2870.  
  2871.     #define STATIC_KSNODE_BDA_QAM_DEMODULATOR \
  2872.         0x71985f4d, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2873.     DEFINE_GUIDSTRUCT("71985F4D-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_QAM_DEMODULATOR);
  2874.     #define KSNODE_BDA_QAM_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_QAM_DEMODULATOR)
  2875.  
  2876.  
  2877.     #define STATIC_KSNODE_BDA_QPSK_DEMODULATOR \
  2878.         0x6390c905, 0x27c1, 0x4d67, 0xbd, 0xb7, 0x77, 0xc5, 0xd, 0x7, 0x93, 0x0
  2879.     DEFINE_GUIDSTRUCT("6390C905-27C1-4d67-BDB7-77C50D079300", KSNODE_BDA_QPSK_DEMODULATOR);
  2880.     #define KSNODE_BDA_QPSK_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_QPSK_DEMODULATOR)
  2881.  
  2882.  
  2883.     #define STATIC_KSNODE_BDA_8VSB_DEMODULATOR \
  2884.         0x71985f4f, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2885.     DEFINE_GUIDSTRUCT("71985F4F-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_8VSB_DEMODULATOR);
  2886.     #define KSNODE_BDA_8VSB_DEMODULATOR DEFINE_GUIDNAMED(KSNODE_BDA_8VSB_DEMODULATOR)
  2887.  
  2888.  
  2889.     #define STATIC_KSNODE_BDA_OPENCABLE_POD \
  2890.         0xd83ef8fc, 0xf3b8, 0x45ab, 0x8b, 0x71, 0xec, 0xf7, 0xc3, 0x39, 0xde, 0xb4
  2891.     DEFINE_GUIDSTRUCT("D83EF8FC-F3B8-45ab-8B71-ECF7C339DEB4", KSNODE_BDA_OPENCABLE_POD);
  2892.     #define KSNODE_BDA_OPENCABLE_POD DEFINE_GUIDNAMED(KSNODE_BDA_OPENCABLE_POD)
  2893.  
  2894.  
  2895.     #define STATIC_KSNODE_BDA_PID_FILTER \
  2896.         0xf5412789, 0xb0a0, 0x44e1, 0xae, 0x4f, 0xee, 0x99, 0x9b, 0x1b, 0x7f, 0xbe
  2897.     DEFINE_GUIDSTRUCT("F5412789-B0A0-44e1-AE4F-EE999B1B7FBE", KSNODE_BDA_PID_FILTER);
  2898.     #define KSNODE_BDA_PID_FILTER DEFINE_GUIDNAMED(KSNODE_BDA_PID_FILTER)
  2899.  
  2900.  
  2901.     #define STATIC_KSNODE_BDA_IP_SINK \
  2902.         0x71985f4e, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
  2903.     DEFINE_GUIDSTRUCT("71985F4E-1CA1-11d3-9CC8-00C04F7971E0", KSNODE_BDA_IP_SINK);
  2904.     #define KSNODE_IP_SINK DEFINE_GUIDNAMED(KSNODE_BDA_IP_SINK)
  2905.  
  2906.  
  2907.     //===========================================================================
  2908.     //
  2909.     // IPSink PINNAME GUID
  2910.     //
  2911.     //===========================================================================
  2912.  
  2913.     #define STATIC_PINNAME_IPSINK_INPUT \
  2914.         0x3fdffa70L, 0xac9a, 0x11d2, 0x8f, 0x17, 0x00, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  2915.     DEFINE_GUIDSTRUCT("3fdffa70-ac9a-11d2-8f17-00c04f7971e2", PINNAME_IPSINK_INPUT);
  2916.     #define PINNAME_IPSINK_INPUT   DEFINE_GUIDNAMED(PINNAME_IPSINK_INPUT)
  2917.  
  2918.  
  2919.     //===========================================================================
  2920.     //
  2921.     // BDA IPSink Categories/Types
  2922.     //
  2923.     //===========================================================================
  2924.  
  2925.  
  2926.     #define STATIC_KSDATAFORMAT_TYPE_BDA_IP\
  2927.         0xe25f7b8e, 0xcccc, 0x11d2, 0x8f, 0x25, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  2928.     DEFINE_GUIDSTRUCT("e25f7b8e-cccc-11d2-8f25-00c04f7971e2", KSDATAFORMAT_TYPE_BDA_IP);
  2929.     #define KSDATAFORMAT_TYPE_BDA_IP  DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_IP)
  2930.  
  2931.     #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_IP\
  2932.         0x5a9a213c, 0xdb08, 0x11d2, 0x8f, 0x32, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  2933.     DEFINE_GUIDSTRUCT("5a9a213c-db08-11d2-8f32-00c04f7971e2", KSDATAFORMAT_SUBTYPE_BDA_IP);
  2934.     #define KSDATAFORMAT_SUBTYPE_BDA_IP  DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_IP)
  2935.  
  2936.     #define STATIC_KSDATAFORMAT_SPECIFIER_BDA_IP\
  2937.         0x6b891420, 0xdb09, 0x11d2, 0x8f, 0x32, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe2
  2938.     DEFINE_GUIDSTRUCT("6B891420-DB09-11d2-8F32-00C04F7971E2", KSDATAFORMAT_SPECIFIER_BDA_IP);
  2939.     #define KSDATAFORMAT_SPECIFIER_BDA_IP  DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_BDA_IP)
  2940.  
  2941.  
  2942.  
  2943.     #define STATIC_KSDATAFORMAT_TYPE_BDA_IP_CONTROL\
  2944.         0xdadd5799, 0x7d5b, 0x4b63, 0x80, 0xfb, 0xd1, 0x44, 0x2f, 0x26, 0xb6, 0x21
  2945.     DEFINE_GUIDSTRUCT("DADD5799-7D5B-4b63-80FB-D1442F26B621", KSDATAFORMAT_TYPE_BDA_IP_CONTROL);
  2946.     #define KSDATAFORMAT_TYPE_BDA_IP_CONTROL  DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_IP_CONTROL)
  2947.  
  2948.     #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL\
  2949.         0x499856e8, 0xe85b, 0x48ed, 0x9b, 0xea, 0x41, 0xd, 0xd, 0xd4, 0xef, 0x81
  2950.     DEFINE_GUIDSTRUCT("499856E8-E85B-48ed-9BEA-410D0DD4EF81", KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL);
  2951.     #define KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL  DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_IP_CONTROL)
  2952.  
  2953.  
  2954.     //===========================================================================
  2955.     //
  2956.     // MPE PINNAME GUID
  2957.     //
  2958.     //===========================================================================
  2959.  
  2960.     #define STATIC_PINNAME_MPE \
  2961.         0xc1b06d73L, 0x1dbb, 0x11d3, 0x8f, 0x46, 0x00, 0xC0, 0x4f, 0x79, 0x71, 0xE2
  2962.     DEFINE_GUIDSTRUCT("C1B06D73-1DBB-11d3-8F46-00C04F7971E2", PINNAME_MPE);
  2963.     #define PINNAME_MPE   DEFINE_GUIDNAMED(PINNAME_MPE)
  2964.  
  2965.  
  2966.     /////////////////////////////////////////////////////////////
  2967.     //
  2968.     // BDA MPE Categories/Types
  2969.     //
  2970.     #define STATIC_KSDATAFORMAT_TYPE_MPE \
  2971.         0x455f176c, 0x4b06, 0x47ce, 0x9a, 0xef, 0x8c, 0xae, 0xf7, 0x3d, 0xf7, 0xb5
  2972.     DEFINE_GUIDSTRUCT("455F176C-4B06-47ce-9AEF-8CAEF73DF7B5", KSDATAFORMAT_TYPE_MPE);
  2973.     #define KSDATAFORMAT_TYPE_MPE  DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPE)
  2974.  
  2975.  
  2976.     #if defined(__cplusplus)
  2977.     }
  2978.     #endif // defined(__cplusplus)
  2979.  
  2980.  
  2981. #endif  // DirectX 8.0 content
  2982.  
  2983.  
  2984. #endif // !defined(_BDAMEDIA_)
  2985.